多图片上传

Layui多图片上传以及中止上传、删除预览等相关操作 Layui多图片上传以及中止上传等相关操作完成品HTML代码upload.js要修改的代码,按Ctrl+Shift+F格式转换下,大概在139行将这段代码放到上面的大括号中Controller 完成品 上传前可删除图片,提交前将图片名称拼接 HTML代码 <div class="layui-form-item"> <label class="layui-form-la... 阅读详情
最近在弄多文件上传,在网上找了些代码,只是单文件的,折腾了两天,终于改成多文件上传的了。
xcode 6.1
iOS 8.0测试成功
希望别的人不要像我一样花时间在修改上。时间就是生命啊。。
[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. +(NSString *)PostImagesToServer:(NSString *) strUrl dicPostParams:(NSMutableDictionary *)params dicImages:(NSMutableDictionary *) dicImages{  
  2.     NSString * res;  
  3.       
  4.       
  5.     //分界线的标识符  
  6.     NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";  
  7.     //根据url初始化request  
  8.     //NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strUrl] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];  
  9.       
  10.     NSURL *url = [NSURL URLWithString:strUrl];  
  11.     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  
  12.     //分界线 --AaB03x  
  13.     NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];  
  14.     //结束符 AaB03x--  
  15.     NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];  
  16.     //要上传的图片  
  17.     UIImage *image;//=[params objectForKey:@"pic"];  
  18.     //得到图片的data  
  19.     //NSData* data = UIImagePNGRepresentation(image);  
  20.     //http body的字符串  
  21.     NSMutableString *body=[[NSMutableString alloc]init];  
  22.     //参数的集合的所有key的集合  
  23.     NSArray *keys= [params allKeys];  
  24.       
  25.     //遍历keys  
  26.     for(int i=0;i<[keys count];i++) {  
  27.         //得到当前key  
  28.         NSString *key=[keys objectAtIndex:i];  
  29.         //如果key不是pic,说明value是字符类型,比如name:Boris  
  30.         //if(![key isEqualToString:@"pic"]) {  
  31.             //添加分界线,换行  
  32.             [body appendFormat:@"%@\r\n",MPboundary];  
  33.             //添加字段名称,换2行  
  34.             [body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];  
  35.             //[body appendString:@"Content-Transfer-Encoding: 8bit"];  
  36.             //添加字段的值  
  37.             [body appendFormat:@"%@\r\n",[params objectForKey:key]];  
  38.         //}  
  39.     }  
  40.     ////添加分界线,换行  
  41.     //[body appendFormat:@"%@\r\n",MPboundary];  
  42.       
  43.     //声明myRequestData,用来放入http body  
  44.     NSMutableData *myRequestData=[NSMutableData data];  
  45.     //将body字符串转化为UTF8格式的二进制  
  46.     [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];  
  47.       
  48.     //循环加入上传图片  
  49.     keys = [dicImages allKeys];  
  50.     for(int i = 0; i< [keys count] ; i++){  
  51.         //要上传的图片  
  52.         image = [dicImages objectForKey:[keys objectAtIndex:i ]];  
  53.         //得到图片的data  
  54.         NSData* data =  UIImageJPEGRepresentation(image, 0.0);  
  55.         NSMutableString *imgbody = [[NSMutableString alloc] init];  
  56.         //此处循环添加图片文件  
  57.         //添加图片信息字段  
  58.         //声明pic字段,文件名为boris.png  
  59.         //[body appendFormat:[NSString stringWithFormat: @"Content-Disposition: form-data; name=\"File\"; filename=\"%@\"\r\n", [keys objectAtIndex:i]]];  
  60.           
  61.         ////添加分界线,换行  
  62.         [imgbody appendFormat:@"%@\r\n",MPboundary];  
  63.         [imgbody appendFormat:@"Content-Disposition: form-data; name=\"File%d\"; filename=\"%@.jpg\"\r\n", i, [keys objectAtIndex:i]];  
  64.         //声明上传文件的格式  
  65.         [imgbody appendFormat:@"Content-Type: application/octet-stream; charset=utf-8\r\n\r\n"];  
  66.           
  67.         NSLog(@"上传的图片:%d  %@", i, [keys objectAtIndex:i]);  
  68.           
  69.         //将body字符串转化为UTF8格式的二进制  
  70.         //[myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];  
  71.         [myRequestData appendData:[imgbody dataUsingEncoding:NSUTF8StringEncoding]];  
  72.         //将image的data加入  
  73.         [myRequestData appendData:data];  
  74.         [myRequestData appendData:[ @"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];  
  75.     }  
  76.     //声明结束符:--AaB03x--  
  77.     NSString *end=[[NSString alloc]initWithFormat:@"%@\r\n",endMPboundary];  
  78.     //加入结束符--AaB03x--  
  79.     [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];  
  80.       
  81.     //设置HTTPHeader中Content-Type的值  
  82.     NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];  
  83.     //设置HTTPHeader  
  84.     [request setValue:content forHTTPHeaderField:@"Content-Type"];  
  85.     //[request setValue:@"keep-alive" forHTTPHeaderField:@"connection"];  
  86.     //[request setValue:@"UTF-8" forHTTPHeaderField:@"Charsert"];  
  87.     //设置Content-Length  
  88.     [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[myRequestData length]] forHTTPHeaderField:@"Content-Length"];  
  89.     //设置http body  
  90.     [request setHTTPBody:myRequestData];  
  91.     //http method  
  92.     [request setHTTPMethod:@"POST"];  
  93.       
  94.     //建立连接,设置代理  
  95.     //NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];  
  96.       
  97.     //设置接受response的data  
  98.          NSData *mResponseData;  
  99.     NSError *err = nil;  
  100.     mResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err];  
  101.       
  102.     if(mResponseData == nil){  
  103.         NSLog(@"err code : %@", [err localizedDescription]);  
  104.     }  
  105.     res = [[NSString alloc] initWithData:mResponseData encoding:NSUTF8StringEncoding];  
  106.     /* 
  107.     if (conn) { 
  108.         mResponseData = [NSMutableData data]; 
  109.         mResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&err]; 
  110.          
  111.         if(mResponseData == nil){ 
  112.             NSLog(@"err code : %@", [err localizedDescription]); 
  113.         } 
  114.         res = [[NSString alloc] initWithData:mResponseData encoding:NSUTF8StringEncoding]; 
  115.     }else{ 
  116.         res = [[NSString alloc] init]; 
  117.     }*/  
  118.     NSLog(@"服务器返回:%@", res);  
  119.     return res;  
  120. }  
plupload上传插件多图片上传操作 最近项目接触到plupload.full.min.js这个插件的使用,网上关于它具体使用很多。         api可参照Plupload上传插件中文帮助文档.         带预览功能的上传操作可参照文件上传插件Plupload使用(带图片预览功能)         这两篇文章几乎可以解决开发人员上手时90%的困惑,然而我们项目需求是这样的,如下图。 涉及到多图片上传,且这些图片必填... 阅读详情

相关推荐

layui 多图片上传(可改多文件上传)

layui 多图片上传(可改多文件上传) 1:才用layui前端框架+原生PHP语言 2:架构清晰,附demo 前端HTML部分 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-C

u014417566的博客 1321

Android 上传图片到服务器

界面很简单,点击 【选择图片】,从图库里选择图片,显示到下面的imageview里,点击上传,就会上传到指定的服务器 布局文件: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

程序猿进化攻城狮之路 577

Flutter 多图片上传

使用Flutter进行应用开发时,经常会遇到选图、拍照等需求。如果要求不高,Flutter图库选择可以使用官方提供的image_picker,如果需要多选,那么可以使用multi_image_picker插件库。multi_image_picker库支持图库管理,多选,拍照,当然还可以自定义资源管理界面。 multi_image_picker的使用也比较简单,首先,需要在pubspec.yaml配置文件中添加multi_image_picker库的依赖,如下所示。 dependencies: dio:

xiangzhihong8的专栏 2342

android图片上传

根据项目需求,需要上传相册和拍照的图片,参考和借鉴了别人的资料和代码,简单地功能实现了。 一、HTTP multipart/form-data——上传报文格式 我们来了解下Android客户端如何通过HTTP协议来将图片上传到服务器。我们先来了解下HTTP multipart/form-data,上传报文格式。 假设接收文件的网页程序是http://172.31.8.6:8080

AppleEngineer 1352

ASP实现多图片上传功能

在数字时代,图片上传功能是现代Web应用中的常见需求,尤其是在需要用户内容生成的网站上。ASP(Active Server Pages)是一个提供动态内容生成的服务器端脚本环境。本章将介绍ASP多图片上传的基本概念,包括其在Web开发中的重要性和应用场景。

weixin_36299472的博客 719

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

http协议文件与数据上传、及上传图片io流错误

package com.smartdoer.utils; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.i...

weixin_30527423的博客 911

LLC谐振电路增益公式推导

LLC谐振电路增益公式理解

金凯*博客 1万+

【原】iOS通过http post上传图片

由于iOS无法通过html表单来上传图片,因此想要上传图片,必须实现http请求,而不能像其他语言那样通过html表单的post就能上传。 上传图片的http post请求的格式是这样的: [code="java"] Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition:...

sunbo1591的专栏 289

初学者入门机器学习 (ML)的推荐教程

了解基本的机器学习概念并不难。有大量免费的在线博客文章、视频和编码教程可以引导您了解基础知识——从介绍性内容到常见应用程序,再到算法和应用技能。这篇文章总结了一些用于介绍 ML 的最佳免费选项。它按逻辑顺序排列,每个概念都建立在上一个概念的基础上。

u010542847的博客 4617

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 526

iOS_一些小功能

如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 find.-name"*.m"-or-name"*.h"-or-name"*.xib"-or-name"*.c"|xargswc-l 列出每个文件的行数 fi...

weixin_30670965的博客 186

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】---来自一位即将入学的准研一,也希望这篇文章能够激励自己不断走下去!!

qq_46044325的博客 4442

layui多图片上传

layui多图片上传 html: 照片墙 照片墙图片上传 照片墙预览图 ...

weixin_43870138的博客 1990

Tmux学习总结

Tmux 重要概念 使用 Tmux 的时候千万不要去背指令,所有的指令都可以在 .tmux.conf 配置文件中绑定自己顺手的快捷键,也可以配置开启鼠标。 这个是我的配置文件:https://github.com/zuorn/tmux.conf 在Tmux逻辑中,需要分清楚Server > Session > Window > Pane这个大小和层级顺序是极其重要的,直接关系到工作效率: Server:是整个tmux的后台服务。有时候更改配置不生效,就要使用tmux kill-

满目星辰 578

Python 爬虫进阶技巧:新手必学的反爬突破与效率优化

本文系统总结了爬虫进阶的核心技巧,针对新手常见的反爬拦截、效率低下、动态页面解析等痛点问题,提出了可落地的解决方案。主要内容包括:通过随机UA池、代理IP池和Cookie池突破常见反爬机制;利用多线程/异步请求提升爬取效率;使用Selenium解析动态渲染页面;以及数据清洗方法提升数据质量。文中提供了完整的代码示例和实战对比数据,并强调爬虫开发应遵守合规性要求。这些技巧能帮助开发者快速提升爬虫实战能力,应对80%以上的常见爬取需求。

2503_91057718的博客 1436

SSM框架下实现多图片上传

最近在实现一个身份证件多图片上传的功能,那么我们如何基于SSM框架来实现身份证件多图片上传的功能的?下面我们来实现一下。 Controller层: @RequestMapping("identityAuthentication.do") public void identityAuthentication(HttpServletRequest req, HttpServletResponse re...

qq_44538331的博客 1120

SAP Retail 补货里的 Requirement Groups,站点和商品太多时,主数据维护如何做减法

SAP Retail补货主数据设计中,Requirement Groups(需求组)是常被低估但至关重要的分类机制。它通过将具有相同补货需求的接收方(如门店)按商品分类(Merchandise Category)分组,大幅降低主数据维护量。在大型零售场景中(如800家门店、6万商品),直接维护每个门店和商品的组合参数会导致维护量失控。Requirement Groups允许企业按品类特性(如乳制品、饮料等)为不同门店组设置统一补货参数,并随业务变化灵活调整。该机制与商品分类紧密绑定,不同于MRP Group

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 68

WebUploader 多图片上传

1、效果如下 2、下载WebUploader 3、在视图里放入一个容器,如下: // 此处是数据校验 判断是否可以进行页面提交 <tr> <td align="right"> <label class="Validform_label"> <font style="color: red;">*</font>多图片: ...

VIP_1205169154的博客 520

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

layui中多图片上传

layui中多图片上传

俗人世界 1027

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

layui 多图片上传

layui 多图片上传,还有不足

weixin_42955679的博客 1219

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

app多图片上传

// 论坛多图片上传 public function uploads(Request $request) { // 判断是否post 提交 if ($request-&gt;isPost()) { $files =$_FILES; // 文件保存路劲 $data_file = ...

soulmybaby的博客 824

php多图片上传代码,php实现多图片上传程序代码

php实现多图片上传方法非常的简单只要遍历数组然后使用上传函数就可以搞定了,可以说几句代码就可以实现,但对于新手来讲还是有点,下面一起来看看。在做图片上传时用到了symfony第三方上传库,详见 Symfony2使用第三方库Upload制作图片上传【原创】,但是对于多图片上传怎么处理,这里我用了个笨办法就是把多图片数组转换成单个的图片数组上传!表单提交如下:接受的图片信息的数组如下:所以对此做一些...

weixin_39635130的博客 229

多图片上传功能

图片分块上传技术能够通过将大文件切割成小块进行单独上传,从而提高上传效率,减少失败重传的成本,并且能在不稳定或低带宽的网络环境下,提升用户体验。尽管基础的HTML表单可以处理图片上传,但为了提供更好的用户体验,我们通常会使用JavaScript来增强前端的交互性。在安全性方面,需要考虑的点包括验证上传文件的类型(如防止恶意文件上传),限制上传文件的大小(防止服务端被大文件拖垮),以及设置合适的HTTP头部来避免常见的安全问题(例如使用 Content-Type 来防止内容被篡改)。

weixin_48892555的博客 686
上一篇: iOS推送 (百度推送)
下一篇: 图片上添加文字
myInterface
博客等级 码龄12年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值