2016-04-07 08:34:15 sun6223508 阅读数 3112
  • Java学习指南(6) 网站入门篇 JavaEE / Servlet

    一、课程简介 『Java学习指南系列』的第6篇教程,介绍JavaEE中的网站开发相关的技术 ( Servlet / JSP )。 相关术语: Servlet | JSP | AJAX | RESTful  | 文件上传 | HTTP GET | HTTP POST | URL Encode |  框架 | 抓包等。 二、主要内容  * 开发环境  MyEclipse2016 + Tomcat8 * Servlet 的创建与运行 * HTTP GET/POST基本原理 * 基于 Servlet 的表单接口 * 基于 Servlet 的RESTful接口 * 基于 Servlet的一般性框架实现 * 文件上传技术 * 文件上传的一般性框架和工具 * JDBC数据库的访问 * JSP的使用和本质原理 * 一个图片库管理系统,综合运用了REST, JDBC和文件上传技术 三、课程体系 〖Java学习指南系列〗 :包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗 :包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    2776 人正在学习 去看看 邵发

 
let docDir:AnyObject = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] 

let imagePath = docDir + "/myPic.jpg"

 var imageData = NSData(contentsOfFile: imagePath, options:NSDataReadingOptions.DataReadingMappedIfSafe, error: nil)

 var parameters = [ "pic" :NetData(nsData: imageData!, filename: "customName.jpg"), "otherParm" :"Value" ]

 let urlRequest = self.urlRequestWithComponents("http://www.example.com/upload.php", parameters: parameters)

 


 

 

Alamofire.upload(urlRequest.0, urlRequest.1) .progress { 
(bytesWritten, totalBytesWritten, totalBytesExpectedToWrite) in println("\

(totalBytesWritten) / \(totalBytesExpectedToWrite)") 
}

 } 

 


func urlRequestWithComponents(urlString:String, parameters:NSDictionary) -> (URLRequestConvertible, NSData) {

    // create url request to send
    var mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: urlString)!)
    mutableURLRequest.HTTPMethod = Alamofire.Method.POST.rawValue
    //let boundaryConstant = "myRandomBoundary12345"
    let boundaryConstant = "NET-POST-boundary-\(arc4random())-\(arc4random())"
    let contentType = "multipart/form-data;boundary="+boundaryConstant
    mutableURLRequest.setValue(contentType, forHTTPHeaderField: "Content-Type")


    // create upload data to send
    let uploadData = NSMutableData()

    // add parameters
    for (key, value) in parameters {

        uploadData.appendData("\r\n--\(boundaryConstant)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

        if value is NetData {
            // add image
            var postData = value as NetData


            //uploadData.appendData("Content-Disposition: form-data; name=\"\(key)\"; filename=\"\(postData.filename)\"\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)

            // append content disposition
            var filenameClause = " filename=\"\(postData.filename)\""
            let contentDispositionString = "Content-Disposition: form-data; name=\"\(key)\";\(filenameClause)\r\n"
            let contentDispositionData = contentDispositionString.dataUsingEncoding(NSUTF8StringEncoding)
            uploadData.appendData(contentDispositionData!)


            // append content type
            //uploadData.appendData("Content-Type: image/png\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!) // mark this. 
            let contentTypeString = "Content-Type: \(postData.mimeType.getString())\r\n\r\n"
            let contentTypeData = contentTypeString.dataUsingEncoding(NSUTF8StringEncoding)
            uploadData.appendData(contentTypeData!)
            uploadData.appendData(postData.data)

        }else{
            uploadData.appendData("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n\(value)".dataUsingEncoding(NSUTF8StringEncoding)!)
        }
    }
    uploadData.appendData("\r\n--\(boundaryConstant)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)



    // return URLRequestConvertible and NSData
    return (Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: nil).0, uploadData)
}
2016-04-18 15:36:36 netedao 阅读数 2352
  • Java学习指南(6) 网站入门篇 JavaEE / Servlet

    一、课程简介 『Java学习指南系列』的第6篇教程,介绍JavaEE中的网站开发相关的技术 ( Servlet / JSP )。 相关术语: Servlet | JSP | AJAX | RESTful  | 文件上传 | HTTP GET | HTTP POST | URL Encode |  框架 | 抓包等。 二、主要内容  * 开发环境  MyEclipse2016 + Tomcat8 * Servlet 的创建与运行 * HTTP GET/POST基本原理 * 基于 Servlet 的表单接口 * 基于 Servlet 的RESTful接口 * 基于 Servlet的一般性框架实现 * 文件上传技术 * 文件上传的一般性框架和工具 * JDBC数据库的访问 * JSP的使用和本质原理 * 一个图片库管理系统,综合运用了REST, JDBC和文件上传技术 三、课程体系 〖Java学习指南系列〗 :包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗 :包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    2776 人正在学习 去看看 邵发

1.通过http协议,post同时上传多张图片和数据到服务器上。
2.IOS开发中前端采用xcode 7.1 swift语言。
3.服务器端采用asp.net,asp实现。

一、下面先看看前端代码。
1.先把需要上传的图片存在img数组中。
2.imgs为图片数量,names和context为需要上传的数据。
上传图片swift代码:

 func upload(img:[UIImage])
     {
        let context = mytext.text
        let names : String = self.title! as String
        lb.frame=CGRectMake(0,250, self.view.bounds.size.width,20)
        lb.textColor=UIColor.whiteColor()
        lb.text="上传中...."
        lb.textAlignment=NSTextAlignment.Center
        lb.backgroundColor=UIColor.blackColor()
        lb.alpha=1
        //添加风火轮
        av.frame=CGRectMake(100,280,20, 20)
        av.backgroundColor=UIColor.whiteColor()
        av.color=UIColor.redColor()
        av.startAnimating()
         self.view.addSubview(av)
         self.view.addSubview(lb)
        var data:[NSData] = [UIImagePNGRepresentation(img[0])!]
        for (var i = 1; i < imgs; ++i) {
           data += [UIImagePNGRepresentation(img[i])! as NSData]
      }
         let uploadurl:String="http://192.168.2.66:81/uploadpic.aspx?id="+names+"&context="+context
        //设置服务器接收地址
        let request=NSMutableURLRequest(URL:NSURL(string: uploadurl)!)
          request.HTTPMethod="POST"//设置请求方式
         let body=NSMutableData()
         let boundary:String="---------------------------7d33a816d302b6"
         let contentType:String="multipart/form-data;boundary="+boundary
          request.addValue(contentType, forHTTPHeaderField:"Content-Type")
        //传图片
        for (var k = 0; k < imgs; ++k) {
        body.appendData(NSString(format:"\r\n--\(boundary)\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Disposition:form-data;name=\"userfile1\";filename=\"dd1.jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Type:image/jpeg\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(data[k])
        }
        body.appendData(NSString(format:"\r\n--\(boundary)--\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        request.HTTPBody=body
         let que=NSOperationQueue()
         NSURLConnection.sendAsynchronousRequest(request, queue: que, completionHandler: {
            (Response, data, error) -> Void in
            if (error != nil){
                 print(error)
             }else{
                 let tr:String=NSString(data:data!,encoding:NSUTF8StringEncoding)! as String
                  print(tr)
                   //在主线程中更新UI风火轮才停止
                  dispatch_sync(dispatch_get_main_queue(), {
                  self.av.stopAnimating()
                 self.lb.hidden=true
                })
             }
         })
    }

二、服务器端实现代码。
1、数据库,用来保存上传的数据和图片路径。
context(
[ID] [int] IDENTITY(1,1) NOT NULL,
[nosn] varchar NULL,
[context] varchar NULL,
[createtime] varchar NULL,
[img1] varchar NULL,
[img2] varchar NULL,
[img3] varchar NULL,
[img4] varchar NULL

2、接收上传多张图片的代码:uploadpic.aspx

<%@ Page language="c#" AutoEventWireup="false"  %> 
<%
string names = Request.QueryString["id"];
string ctxt = Request.QueryString["context"];
string spath = Server.MapPath("/"+names);
string SaveFilePath ="";
string[] sfpath =new string[4];
int rq = Request.Files.Count;
Response.Write(rq);
if (System.IO.Directory.Exists(spath) == false)
{
System.IO.DirectoryInfo dirinfo = System.IO.Directory.CreateDirectory(spath);
}
int i=0;
for (i=0; i<=rq-1; i++ ) {
    sfpath[i] = "/"+names+"/"+System.DateTime.Now.ToString("yyyymmddhhmmssfff") + i+".jpg";
 SaveFilePath = Server.MapPath(sfpath[i]);
HttpPostedFile postfile1=Request.Files[i];
postfile1.SaveAs(SaveFilePath);
}
Response.Write(rq + "  image upload success!\r\n");
string url = "http://192.168.2.66:81/postcontext.asp?id="+ names + "&context=" + ctxt + "&img1="+sfpath[0] +"&img2="+sfpath[1] +"&img3="+sfpath[2] +"&img4="+sfpath[3];
//string data = "id="+ names + "&context=" + ctxt + "&img1="+sfpath1 +"&img2="+sfpath2 +"&img3="+sfpath3 +"&img4="+sfpath4;
string data = "";
Response.Write (data);
 try
{
byte[] postBytes = Encoding.GetEncoding("utf-8").GetBytes(data);
System.Net.HttpWebRequest myRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
myRequest.Method = "POST";
myRequest.ContentType = "text/html";
myRequest.ContentLength = postBytes.Length;
myRequest.Proxy = null;
System.IO.Stream newStream = myRequest.GetRequestStream();
newStream.Write(postBytes, 0, postBytes.Length);
newStream.Close();
// Get response
System.Net.HttpWebResponse myResponse = (System.Net.HttpWebResponse)myRequest.GetResponse();
using (System.IO.StreamReader reader = new System.IO.StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding("utf-8")))
{
string content = reader.ReadToEnd();
Response.Write( content);
}
}
catch (System.Exception ex)
{
Response.Write( ex.Message);
}
 Response.End();
%>

3.保存数据的文件:postcontext.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!-- #include file="conn.asp" --> 
<%
dim id,mys
urls="http://192.168.2.66:81"
id = Request.QueryString("id")

mys = request.QueryString("context")
img1 = request.QueryString("img1")
img2 = request.QueryString("img2")
img3 = request.QueryString("img3")
img4 = request.QueryString("img4")
if img1<> "" then
   img1 = urls & img1
 end if 

if img2<> "" then
   img2 = urls & img2
 end if 
 if img3<> "" then
   img3 = urls & img3
 end if 
 if img4<> "" then
   img4 = urls & img4
 end if 
 dim rs1
sqlcmd="insert into context (nosn,context,createtime,img1,img2,img3,img4) VALUES  ('"&id&"','"&mys&"',getdate(),'"&img1&"','"&img2&"','"&img3&"','"&img4&"') "
set rs1=conn.execute(sqlcmd)  
response.Write(sqlcmd)
Response.write "保存成功!"
  %>
2018-04-18 19:25:56 du532835032 阅读数 3860
  • Java学习指南(6) 网站入门篇 JavaEE / Servlet

    一、课程简介 『Java学习指南系列』的第6篇教程,介绍JavaEE中的网站开发相关的技术 ( Servlet / JSP )。 相关术语: Servlet | JSP | AJAX | RESTful  | 文件上传 | HTTP GET | HTTP POST | URL Encode |  框架 | 抓包等。 二、主要内容  * 开发环境  MyEclipse2016 + Tomcat8 * Servlet 的创建与运行 * HTTP GET/POST基本原理 * 基于 Servlet 的表单接口 * 基于 Servlet 的RESTful接口 * 基于 Servlet的一般性框架实现 * 文件上传技术 * 文件上传的一般性框架和工具 * JDBC数据库的访问 * JSP的使用和本质原理 * 一个图片库管理系统,综合运用了REST, JDBC和文件上传技术 三、课程体系 〖Java学习指南系列〗 :包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗 :包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    2776 人正在学习 去看看 邵发

用最新的 Alamofire(swift 4.1) (带参数)上传图片到服务器

1,准备参数

let image = UIImage(named: "xxx")
//将图片转化为JPEG类型的data 后面的参数是压缩比例
let jpegImage = UIImageJPEGRepresentation(image!, 0.5)
//要传的参数(比如我们带用户的加密uid)
 let uid = ["uid" : user.uid]
 let ecodeUid = EncryptionHelper.getParamsString(uid as [String : AnyObject])
 //将参赛转化为data
let ecodeData = ecodeUid.data(using: .utf8)

2,开始上传

//全部代码如下
Alamofire.upload(multipartFormData: { (multipartFormData) in
    multipartFormData.append(ecodeData!, withName: "data")
    multipartFormData.append(jpegImage!, withName: "avatar", fileName: "avatar"+".jpeg", mimeType: "image/jpeg")
            }, to: "https://www.ka5188.com/app/api/v1/user/uploadImg" , encodingCompletion: { encodingResult in
                ws!.hideLoading()
                switch encodingResult {
                case .success(let upload, _, _):
                    upload.responseJSON { response in
                        if let data = response.data {
                            let responseJson = JSON(data: data)
                            if responseJson["status"].intValue == 1 {
                                //上传成功,刷新当前头像
                                }
                            } else {
                               let msg = responseJson["msg"].stringValue
                               self.showMessage(msg)
                            }
                        }
                    }
                case .failure(let encodingError):
                    log.debug(encodingError)
                    self.showMessage("上传图片失败")
                }
            })

说明和注意点

//需要注意的地方 
 multipartFormData.append(ecodeData!, withName: "data")
//第一个参数"ecodeData",就是我们加密的二进制uid
/第二个参数"data"
服务端以这个字段名获取加密的uid(个人以为应该用"uid")

multipartFormData.append(jpegImage!, withName: "avatar", fileName: "avatar"+".jpeg", mimeType: "image/jpeg")
//带一个参数"jpegImage",就是我们加密的二进制图片流
//带二个参数"withName",后台通过西字段来获取图片
//带三个参数"fileName",后台检图片类型的,主要是后缀名
//带四个参数"mimeType",传输的文件类型。
注 : 1,开始由于第二个参数和第三个参数弄混了,导制上传失败
      2,由于第三个参数没有加后缀".jpeg",导致后台输出(文件格式不支持)
      3,第三个参数mimeType 传入类型是图片
      下面给出官方解释,还有我们后台php部分代码

#

官方解释如下

image

后端代码

image

附:一个优雅的图片处理库
欢迎查看DDGScreenShot

其余功能如下

  1. (一)DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)
  2. (二)DDGScreenShot–iOS 图片处理–多图片拼接
  3. (三)DDGScreenShot–iOS 图片裁剪,切圆角,加边框,你还用cornerRadius,还有更高级的用法
  4. (四)DDGScreenShot—图片擦除功能
  5. (六)DDGScreenShot —图片加各种滤镜高逼格操作
  6. (七)DDGScreenShot —图片加高斯模糊,老电影效果
2017-08-17 10:22:29 zengxiansheng2 阅读数 447
  • Java学习指南(6) 网站入门篇 JavaEE / Servlet

    一、课程简介 『Java学习指南系列』的第6篇教程,介绍JavaEE中的网站开发相关的技术 ( Servlet / JSP )。 相关术语: Servlet | JSP | AJAX | RESTful  | 文件上传 | HTTP GET | HTTP POST | URL Encode |  框架 | 抓包等。 二、主要内容  * 开发环境  MyEclipse2016 + Tomcat8 * Servlet 的创建与运行 * HTTP GET/POST基本原理 * 基于 Servlet 的表单接口 * 基于 Servlet 的RESTful接口 * 基于 Servlet的一般性框架实现 * 文件上传技术 * 文件上传的一般性框架和工具 * JDBC数据库的访问 * JSP的使用和本质原理 * 一个图片库管理系统,综合运用了REST, JDBC和文件上传技术 三、课程体系 〖Java学习指南系列〗 :包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗 :包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    2776 人正在学习 去看看 邵发

之前一直用的oc图片上传!由于新项目的需要使用了swift语言,既然使用那就少不了图片上传操作。下面是简单图片上传的方法希望能帮到大家:

首先做一个网络请求类的单例
//MallrroNurseDataManager 网络请求类的类名
static let shareManager:MallrroNurseDataManager = {

    let baseUrl = NSURL(string:"")!
    let manager = MallrroNurseDataManager(baseURL:baseUrl as URL, sessionConfiguration:URLSessionConfiguration.default)
    manager.responseSerializer.acceptableContentTypes = NSSet(objects:"application/json","text/json","text/javascript","text/plain","text/html") as? Set<String>
    return manager
}()

/**
post请求上传图片

 - parameter urlString:  请求的url
 - parameter parameters: 请求的参数
 - parameter success:    请求成功回调
 - parameter failure:    请求失败回调
 */
class func uploadImg(view:Any,urlString:String,parameters:NSMutableDictionary?,img:UIImage, success:((_ responseObject:AnyObject?) -> Void)?,failure:((_ error:NSError) -> Void)?) -> Void {

    if !TestNetWorkClass .connectedToNetWork() {

        JKAlert.alertText("请检查网络")
        return
    }
     let urlstr ="url" //上传后台服务器的url

    let mallrroParameter =  NSMutableDictionary() //类型的接口需要的参数

    let sessionConfiguration = URLSessionConfiguration.default
    let manager =  AFHTTPSessionManager(sessionConfiguration: sessionConfiguration)
    manager.responseSerializer.acceptableContentTypes = NSSet(arrayLiteral: "application/json", "text/json", "text/javascript","text/html") as? Set<String>

    manager.post(urlstr, parameters: mallrroParameter, constructingBodyWith: { (formData) in
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyyMMddHHmmss"
        formatter.timeZone = NSTimeZone.system
        let fileName:String = "\(formatter.string(from: NSDate.init() as Date)).jpg"
        let imageData = UIImageJPEGRepresentation(img, 0.05)
        formData.appendPart(withFileData: imageData!, name: "file", fileName: fileName, mimeType: "image/jpg")
    }, progress: { (progress) in

    }, success: { (task, response) in

        //如果response不为空时
        if response != nil {

            success!(response as AnyObject?)
        }
    }) { (task, error) in

        failure!(error  as AnyObject? as! NSError)
    }

}

2017-01-02 02:25:19 aiyin1115 阅读数 200
  • Java学习指南(6) 网站入门篇 JavaEE / Servlet

    一、课程简介 『Java学习指南系列』的第6篇教程,介绍JavaEE中的网站开发相关的技术 ( Servlet / JSP )。 相关术语: Servlet | JSP | AJAX | RESTful  | 文件上传 | HTTP GET | HTTP POST | URL Encode |  框架 | 抓包等。 二、主要内容  * 开发环境  MyEclipse2016 + Tomcat8 * Servlet 的创建与运行 * HTTP GET/POST基本原理 * 基于 Servlet 的表单接口 * 基于 Servlet 的RESTful接口 * 基于 Servlet的一般性框架实现 * 文件上传技术 * 文件上传的一般性框架和工具 * JDBC数据库的访问 * JSP的使用和本质原理 * 一个图片库管理系统,综合运用了REST, JDBC和文件上传技术 三、课程体系 〖Java学习指南系列〗 :包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗 :包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。

    2776 人正在学习 去看看 邵发
    以下是swift 上传4张图片到服务器上,服务器只能成功收到第一张。服务器后台采用的是Request.files来处理的。Request.files[0]是有数据,Request.files[1]等没有数据。
    请大虾帮帮看看以下代码(swift + xcode 7.1)是否正确。{现在穷,分数不多。}
        
func upload(img:[UIImage])
        
    {
        let context = mytext.text
        let names : String = self.title! as String
        lb.frame=CGRectMake(0,250, self.view.bounds.size.width,20)        
        lb.textColor=UIColor.whiteColor()
        lb.text="上传中...."        
        lb.textAlignment=NSTextAlignment.Center
        
        lb.backgroundColor=UIColor.blackColor()
        
        lb.alpha=1        
        av.frame=CGRectMake(100,280,20, 20)
        
        av.backgroundColor=UIColor.whiteColor()
        
        av.color=UIColor.redColor()
        
        av.startAnimating()
         self.view.addSubview(av)
         self.view.addSubview(lb)
         let data1=UIImagePNGRepresentation(img[0])//把图片转成data
         var data2 = data1
         var data3 = data1
         var data4 = data1
       if (self.imgs >= 2) {
           data2=UIImagePNGRepresentation(img[1])//把图片转成data
        }
        if (self.imgs >= 3) {
           data3=UIImagePNGRepresentation(img[2])//把图片转成data
        }
        if (self.imgs >= 4) {
           data4=UIImagePNGRepresentation(img[3])//把图片转成data
        }
      
          let uploadurl:String="http://192.168.2.66:81/uploadpic.aspx?id="+names+"&context="+context//设置服务器接收地址
        let request=NSMutableURLRequest(URL:NSURL(string:uploadurl)!)
          request.HTTPMethod="POST"//设置请求方式
         let boundary:String="-------------------21212222222222222222222"
         let contentType:String="multipart/form-data;boundary="+boundary
         request.addValue(contentType, forHTTPHeaderField:"Content-Type")
        let body=NSMutableData()
        //传第1张图片
        body.appendData(NSString(format:"\r\n--\(boundary)\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Disposition:form-data;name=\"userfile1\";filename=\"dd1.jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Type:application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(data1!)
        body.appendData(NSString(format:"\r\n--\(boundary)--\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        //传第2张图片
        if (self.imgs >= 2) {
        //let data2=UIImagePNGRepresentation(img[1])//把图片转成data
        body.appendData(NSString(format:"\r\n--\(boundary)\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Disposition:form-data;name=\"userfile2\";filename=\"dd2.jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Type:application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(data2!)
        body.appendData(NSString(format:"\r\n--\(boundary)--\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        }
        if (self.imgs >= 3) {
      //  let    data3=UIImagePNGRepresentation(img[2])//把图片转成data
        //传第3张图片
        body.appendData(NSString(format:"\r\n--\(boundary)\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Disposition:form-data;name=\"userfile3\";filename=\"dd3.jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Type:application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(data3!)
        body.appendData(NSString(format:"\r\n--\(boundary)--\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        }
        if (self.imgs >= 4) {
       //  let data4=UIImagePNGRepresentation(img[3])//把图片转成data
        //传第4张图片
        body.appendData(NSString(format:"\r\n--\(boundary)\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Disposition:form-data;name=\"userfile4\";filename=\"dd4.jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(NSString(format:"Content-Type:application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(data4!)
        body.appendData(NSString(format:"\r\n--\(boundary)--\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
        }
        
        request.HTTPBody=body
        
        let que=NSOperationQueue()
        
        NSURLConnection.sendAsynchronousRequest(request, queue: que, completionHandler: {
            (Response, data, error) -> Void in           

            if (error != nil){                
                print(error)                
            }else{                
                //Handle data in NSData type                
                let tr:String=NSString(data:data!,encoding:NSUTF8StringEncoding)! as String                
                print(tr)                       
                
                dispatch_sync(dispatch_get_main_queue(), {
                    
                    self.av.stopAnimating()
                    
                    self.lb.hidden=true
                    
                    
                    
                })
                
                
                
            }
            
        })       
        
    }

  


没有更多推荐了,返回首页