Skip to main content
Question

Upload Document To Box - Error 400 - API upload did not contain a file part


Forum|alt.badge.img

Hello,

I am trying to upload a document but am receiving error 400 (API upload did not contain a file part).

I have to use an application called 4D to submit the http request using the following code…

    $boundary:=Generate UUID
    $crlf:="\r\n"

        $bodyPartTxt:=""
        $bodyPartTxt:=$bodyPartTxt+"--"+$boundary+$crlf
        $bodyPartTxt:=$bodyPartTxt+"Content-Disposition: form-data; name=\"attributes\""+$crlf 
        $bodyPartTxt:=$bodyPartTxt+"Content-Type: application/json"+$crlf+$crlf
        $bodyPartTxt:=$bodyPartTxt+$attributesText+$crlf
        $bodyPartTxt:=$bodyPartTxt+"--"+$boundary+$crlf
        $bodyPartTxt:=$bodyPartTxt+"Content-Disposition: form-data; name=\"file\"; filename=\""+$docName+"\""+$crlf
        $bodyPartTxt:=$bodyPartTxt+"Content-Type: text/plain"+$crlf
        $bodyPartTxt:=$bodyPartTxt+"Some text."+$crlf
        $bodyPartTxt:=$bodyPartTxt+"--"+$boundary+"--"

    ARRAY TEXT(aHeaderNames; 0)
    ARRAY TEXT(aHeaderValues; 0)
    APPEND TO ARRAY(aHeaderNames; "authorization")
    APPEND TO ARRAY(aHeaderValues; "bearer "+$boxToken)
    APPEND TO ARRAY(aHeaderNames; "as-user")
    APPEND TO ARRAY(aHeaderValues; <>BoxUserID)
    APPEND TO ARRAY(aHeaderNames; "Content-length")
    APPEND TO ARRAY(aHeaderValues; String(Length($bodyPartTxt)))
    APPEND TO ARRAY(aHeaderNames; "Content-type")
    APPEND TO ARRAY(aHeaderValues; "multipart/form-data; boundary="+$boundary)
    
    $url:="https://upload.box.com/api/2.0/files/content"

$statusCode:=HTTP Request(HTTP POST method; $url; $bodyPartTxt; $responseTxt; aHeaderNames; aHeaderValues; *)

The contents sent in $bodyPartTxt are…

    --0C70A9C683B34506B5224BE1EC4AF89E\r\nContent-Disposition: form-data; name="attributes"\r\nContent-Type: application/json\r\n\r\n{"name":"JimTest01.txt","parent":{"id":"309964342881"}}\r\n--0C70A9C683B34506B5224BE1EC4AF89E\r\nContent-Disposition: form-data; name="file"; filename="JimTest01.txt"\r\nContent-Type: text/plain\r\nSome text.\r\n--0C70A9C683B34506B5224BE1EC4AF89E--

 

I receive the following error…

{"code":"bad_request","help_url":"http://developers.box.com/docs/#errors","status":400,"message":"API upload did not contain a file part","type":"error"}

I’ve tried several changes…

  • Put the text in a blob and send that instead of text.
  • base 64 encode the text of the document.
  • Changing the number or location of $crlf.  This resulted in errors such as malformed stream, unexpected end of stream, or no response text at all.

I’d appreciate any ideas.  I’m stumped!

 

0 replies

Be the first to reply!

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings