上传 JPG 图像以解析服务器失败

Posted

技术标签:

【中文标题】上传 JPG 图像以解析服务器失败【英文标题】:Upload JPG Image To Parse Server Failing 【发布时间】:2017-01-08 15:42:54 【问题描述】:

我正在尝试将图像文件上传到解析服务器。我可以正确上传 png 文件,但是如果我 选择 jpg 文件,那么我会收到这样的错误

使用未知类型创建图像格式是一个错误 Optional(Error Domain=NSCocoaErrorDomain Code=3840 "JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。"

我正在使用这些代码上传图片;

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
    let imageUrl          = info[UIImagePickerControllerReferenceURL] as! NSURL
    let imageExt         = imageUrl.pathExtension
    var type = 1
    if imageExt == "PNG" 
        type = 0
    else if imageExt == "JPG" 
        type = 1
    
    profilePicture.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    self.dismiss(animated: false, completion: nil)
    self.uploadImageToParse(image: profilePicture.image!,imageType:type)


func uploadImageToParse(image:UIImage,imageType:Int) 
    let query = PFQuery(className: "cls_kullanicilar")
    query.getObjectInBackground(withId: uObjectId)  (object, error) in
        if error == nil 
            if let object = object 
                if imageType == 0 
                    let fname = String(self.randomString(length: 12)+".png")
                    let imgData = UIImagePNGRepresentation(image)
                    let parseFile = PFFile(name: fname, data: imgData!)
                    object["profilePhoto"] = parseFile
                    //object["profil_foto"] = fname
                    object.saveInBackground(block:  (result, error) in
                        if error != nil 
                            print(error)
                        
                    )
                else if imageType == 1 
                    let fname = String(self.randomString(length: 12)+".jpg")
                    let imgData = UIImageJPEGRepresentation(image, 1.0)
                    let parseFile = PFFile(name: fname, data: imgData!)
                    object["profilePhoto"] = parseFile
                    //object["profil_foto"] = fname
                    object.saveInBackground(block:  (result, error) in
                        if error != nil 
                            print(error)
                        
                    )
                
            
        else
            print("HATA")
        
    

我该如何处理?谢谢大家。

【问题讨论】:

PFFile下也可以传入contentType参数。您可以尝试将其设置为“image/jpeg”并重试吗? @RanHassid 我像这样更改了 ppfile PFFile(name: fname, data: imgData!, contentType:"image/jpg") 但我又得到了同样的错误。 【参考方案1】:

我找到了解决问题的方法。

我增加了我的 nginx 上传大小。我的错。有时候我什么都想不起来。

【讨论】:

以上是关于上传 JPG 图像以解析服务器失败的主要内容,如果未能解决你的问题,请参考以下文章

上传漏洞分类

安全问题和解析数据 iPhone 到服务器

AFNetworking POST 写入服务器并返回失败错误(Cocoa 错误 3840)

Summernote 显示已上传到文件夹的图像

目录路径检测解析绕过上传漏洞 啥意思

无法使用 android 中的解析 api 在解析服务器中上传图像