快速发送图像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的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 快速循环图像像素

PHP - 检测图像周围空白的真正快速方法?

快速远程 PHP 技术检测图像 404

缩小php中的图像以快速查看并保持质量[关闭]

使用 Javascript Fetch API 发送的快速解析文件

使用 segues 将 Parse 数组中的图像快速链接到 secondViewController