快速发送图像php
Posted
技术标签:
【中文标题】快速发送图像php【英文标题】:send image php swift 【发布时间】:2015-02-06 16:46:46 【问题描述】:我正在尝试使用 swift 在我的本地 php 服务器上发送图像 我不明白为什么我有一条错误消息(致命错误:在展开 Optional 值时意外发现 nil)
这是我的代码:
var image = info[UIImagePickerControllerOriginalImage] as UIImage
var imageData = UIImageJPEGRepresentation(image, 90)
var request = NSMutableURLRequest(URL: NSURL(string:"http://http:192.168.1.73:8888/upload.php")!)
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var boundary = NSString(format: "---------------------------14737809831466499882746641449")
var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary)
request.addValue(contentType, forHTTPHeaderField: "Content-Type")
var body = NSMutableData.alloc()
// Image
body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
body.appendData(NSString(format:"Content-Disposition: form-data; name=\"htdocs\"; filename=\".jpg\"\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
body.appendData(NSString(format: "Content-Type: application/octet-stream\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
body.appendData(imageData)
body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
request.HTTPBody = body
var returnData = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
println(returnData)
var returnString = NSString(data: returnData!, encoding: NSUTF8StringEncoding)
println("returnString \(returnString)")
【问题讨论】:
"http://http:192.168.1.73:8888/upload.php"
是无效的 URL...
不,当我用浏览器尝试时,它说没问题。
【参考方案1】:
您不能强制解开 Optional
值,因为它可能是 nil
而不是实际值。
以这一行为例:
var request = NSMutableURLRequest(URL: NSURL(string:"http://http:192.168.1.73:8888/upload.php")!)
如果NSURL(string:"http://http:192.168.1.73:8888/upload.php")
返回nil
,您将调用无效的NSMutableURLRequest(URL: nil)
。
你需要检查解包后的值是否有效:
if let url = NSURL(string:"http://http:192.168.1.73:8888/upload.php")
var request = NSMutableURLRequest(URL: url)
【讨论】:
对不起,我有同样的错误。如果我把 /*var returnString = NSString(data: returnData!, encoding: NSUTF8StringEncoding) println("returnString (returnString)")*/ 我没有错误,但我不能在 URL 保存填充 @julienlescoulie 同样,您在打开returnData!
时没有询问它是否为 nil。你在几个地方都在做同样的事情。您需要修复所有这些问题。
我试过了,但我认为真正的问题是:为什么它返回 nil?以上是关于快速发送图像php的主要内容,如果未能解决你的问题,请参考以下文章