Swift로 이미지를 서버에 업로드하는 동안 오류가 발생했습니다.

user1457381

안녕하세요, 여기에 링크를 통해 서버에 이미지를 업로드하는 데 사용하는 코드가 있습니다.

if (currentElementName == "uploadUrl") {
                let returnUploadURL = string

                var imageData = UIImagePNGRepresentation(pictureImage.image)

                if imageData != nil{
                    var request = NSMutableURLRequest(URL: NSURL(string: returnUploadURL)!)
                    var session = NSURLSession.sharedSession()
                    println(request)
                    request.HTTPMethod = "POST"

                    var boundary = NSString(format: "---------------------------14737809831466499882746641449")
                    var contentType = NSString(format: "multipart/form-data; boundary=%@",boundary)
                    //  println("Content Type \(contentType)")
                    request.addValue(contentType, forHTTPHeaderField: "Content-Type")

                    var body = NSMutableData.alloc()

                    // Title
                    body.appendData(NSString(format: "\r\n--%@\r\n",boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
                    body.appendData(NSString(format:"Content-Disposition: form-data; name=\"image.png\"\r\n\r\n").dataUsingEncoding(NSUTF8StringEncoding)!)
                    body.appendData("Hello World".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)

                    // Image
                    body.appendData(NSString(format: "\r\n--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!)
                    body.appendData(NSString(format:"Content-Disposition: form-data; name=\"file\"; filename=\"image.png\"\\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)
                    var returnString = NSString(data: returnData!, encoding: NSUTF8StringEncoding)

                    println("returnString \(returnString)")
                }
            }

어떤 이유로 콘솔에서 이것을 얻고 앱이 충돌합니다.

<NSMutableURLRequest: 0x17020d560> { URL: http://oms/process.php?method=PQUEUE_INV_FILE }
returnString Optional(Array
(
    [file] => Array
        (
            [name] => r
            [type] => application/octet-stream
            [tmp_name] => /tmp/phpbAfzYN
            [error] => 0
            [size] => 17263726
        )

)
)
<NSMutableURLRequest: 0x174018130> { URL: & }
fatal error: unexpectedly found nil while unwrapping an Optional value

먼저 파일 이름 "r"을 어떻게 제공합니까? 그리고 링크의 "&"다음에이 치명적인 오류가 발생하는 이유는 무엇입니까? 링크는 이런 방식으로 작동합니다.

"http://oms/process.php?method=PQUEUE_INV_FILE&id=22405"
Rob

몇 가지 관찰 :

  1. 당신에 content-disposition이미지 이름, 당신은 \\r당신은 분명 의미 곳 \r.

  2. 귀하의 요청은 제대로 종료되지 않았습니다. --마지막 경계 뒤에는 있어야 하지만 그 앞에 있어야합니다 \r\n(예 : 마지막 경계의 형식 문자열은이어야합니다 \r\n--%@--\r\n).

  3. 실패한 요청과 관련하여 두 번째로 호출되는 것처럼 보이지만 두 번째 returnUploadURL는 올바르지 않습니다 (단순히으로 &표시됨). URL을 어떻게 만들 었는지 보여주지 않았지만 문제가있는 것 같습니다. 해당 URL을 작성하는 코드를 확인하십시오.

    println요청 작성을 시작하기 전에 URL 중 하나를 수행하면 해당 문제가 완전히 완화됩니다. URL은 다음과 같아야합니다.

    http://oms/process.php?method=PQUEUE_INV_FILE&id=22405
    

    그러나 어쨌든 두 개의 개별 요청이 작성되는 것으로 보입니다. 첫 번째 요청이 &. 두 번째는 &그 자체 인 것 같습니다 . 요컨대, URL을 작성하는 코드를 공유하지 않았지만 거기에 문제가 있다고 생각합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

서버 AWS에서 이미지를로드하는 동안 오류가 발생했습니다.

분류에서Dev

DICOM 이미지를 dcm4chee에 업로드하는 동안 오류가 발생했습니다.

분류에서Dev

데이터베이스에서 이미지를로드하는 동안 오류가 발생했습니다.

분류에서Dev

JSON을 통해 ListView에서 이미지를로드하는 동안 오류가 발생했습니다.

분류에서Dev

장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

분류에서Dev

장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

분류에서Dev

jquery에서 이미지로드를 기다리는 동안 오류가 발생했습니다.

분류에서Dev

이미지를로드하는 동안 오류가 발생했습니다.

분류에서Dev

Multipart를 사용하여 이미지를 업로드하는 동안 오류가 발생했습니다.

분류에서Dev

Node js를 사용하여 AWS에 여러 이미지를 업로드하는 동안 오류가 발생했습니다.

분류에서Dev

Amplify Storage reactjs를 통해 S3에 업로드하는 동안 오류가 발생했습니다.

분류에서Dev

Seaside 3.1을 최신 Pharo 3.0 이미지에로드하는 동안 오류가 발생했습니다.

분류에서Dev

이 터미널에 대한 하위 프로세스를 만드는 동안 오류가 발생했습니다.

분류에서Dev

C에서 디버그 인쇄 매크로를 만드는 동안 오류가 발생했습니다.

분류에서Dev

여러 이미지 업로드를 위해 PHP에서 축소판을 만드는 동안 오류가 발생했습니다.

분류에서Dev

오버로드 된 I / O 연산자 내에서 증가 연산자를 오버로드하는 동안 오류가 발생했습니다.

분류에서Dev

원격 서버에서 오류를 반환했습니다 : (403) 금지됨. SSIS를 사용하여 공유 지점 문서 라이브러리에 파일을 업로드하는 동안 오류가 발생했습니다.

분류에서Dev

retroft android를 사용하여 PHP 서버에 파일을 업로드하는 동안 오류가 발생했습니다.

분류에서Dev

xmpp 서버에 로그인하는 동안 오류가 발생했습니다.

분류에서Dev

CodeIgniter에서 외부 라이브러리 Gantii를로드하는 동안 오류가 발생했습니다.

분류에서Dev

CodeIgniter에서 외부 라이브러리 Gantii를로드하는 동안 오류가 발생했습니다.

분류에서Dev

데이터를로드하는 동안 pig에서 오류가 발생했습니다.

분류에서Dev

sudo에서 공유 라이브러리를로드하는 동안 오류가 발생했습니다.

분류에서Dev

laravel을 6.03에서 6.18로 업데이트하는 동안 오류가 발생했습니다.

분류에서Dev

14.02 LTS에서 16.0 LTS로 업데이트하는 동안 오류가 발생했습니다.

분류에서Dev

1에서 0..1 관계로 엔터티를로드하는 동안 오류가 발생했습니다. Entity Framework

분류에서Dev

MacOs High Sierra에서 SDK 도구를 다운로드하는 동안 오류가 발생했습니다.

분류에서Dev

XML 데이터를 하이브 테이블에로드하는 동안 오류가 발생했습니다.

분류에서Dev

비동기 메서드를 동 기적으로 호출하는 동안 오류가 발생했습니다.

Related 관련 기사

  1. 1

    서버 AWS에서 이미지를로드하는 동안 오류가 발생했습니다.

  2. 2

    DICOM 이미지를 dcm4chee에 업로드하는 동안 오류가 발생했습니다.

  3. 3

    데이터베이스에서 이미지를로드하는 동안 오류가 발생했습니다.

  4. 4

    JSON을 통해 ListView에서 이미지를로드하는 동안 오류가 발생했습니다.

  5. 5

    장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

  6. 6

    장치에 이미지를로드하는 동안 오류가 발생했습니다 (빠른).

  7. 7

    jquery에서 이미지로드를 기다리는 동안 오류가 발생했습니다.

  8. 8

    이미지를로드하는 동안 오류가 발생했습니다.

  9. 9

    Multipart를 사용하여 이미지를 업로드하는 동안 오류가 발생했습니다.

  10. 10

    Node js를 사용하여 AWS에 여러 이미지를 업로드하는 동안 오류가 발생했습니다.

  11. 11

    Amplify Storage reactjs를 통해 S3에 업로드하는 동안 오류가 발생했습니다.

  12. 12

    Seaside 3.1을 최신 Pharo 3.0 이미지에로드하는 동안 오류가 발생했습니다.

  13. 13

    이 터미널에 대한 하위 프로세스를 만드는 동안 오류가 발생했습니다.

  14. 14

    C에서 디버그 인쇄 매크로를 만드는 동안 오류가 발생했습니다.

  15. 15

    여러 이미지 업로드를 위해 PHP에서 축소판을 만드는 동안 오류가 발생했습니다.

  16. 16

    오버로드 된 I / O 연산자 내에서 증가 연산자를 오버로드하는 동안 오류가 발생했습니다.

  17. 17

    원격 서버에서 오류를 반환했습니다 : (403) 금지됨. SSIS를 사용하여 공유 지점 문서 라이브러리에 파일을 업로드하는 동안 오류가 발생했습니다.

  18. 18

    retroft android를 사용하여 PHP 서버에 파일을 업로드하는 동안 오류가 발생했습니다.

  19. 19

    xmpp 서버에 로그인하는 동안 오류가 발생했습니다.

  20. 20

    CodeIgniter에서 외부 라이브러리 Gantii를로드하는 동안 오류가 발생했습니다.

  21. 21

    CodeIgniter에서 외부 라이브러리 Gantii를로드하는 동안 오류가 발생했습니다.

  22. 22

    데이터를로드하는 동안 pig에서 오류가 발생했습니다.

  23. 23

    sudo에서 공유 라이브러리를로드하는 동안 오류가 발생했습니다.

  24. 24

    laravel을 6.03에서 6.18로 업데이트하는 동안 오류가 발생했습니다.

  25. 25

    14.02 LTS에서 16.0 LTS로 업데이트하는 동안 오류가 발생했습니다.

  26. 26

    1에서 0..1 관계로 엔터티를로드하는 동안 오류가 발생했습니다. Entity Framework

  27. 27

    MacOs High Sierra에서 SDK 도구를 다운로드하는 동안 오류가 발생했습니다.

  28. 28

    XML 데이터를 하이브 테이블에로드하는 동안 오류가 발생했습니다.

  29. 29

    비동기 메서드를 동 기적으로 호출하는 동안 오류가 발생했습니다.

뜨겁다태그

보관