首頁  >  問答  >  主體

使用cURL上傳帶有文件的POST數據

<p>我想使用cURL不僅可以在HTTP POST中傳送資料參數,還可以上傳具有特定表單名稱的檔案。我該如何做到這一點? </p> <p>HTTP POST參數:</p> <p>userid = 12345 filecomment = 這是一個圖片檔案</p> <p>HTTP檔上傳: 檔案位置 = /home/user1/Desktop/test.jpg 檔案的表單名稱 = image(對應PHP端的$_FILES['image'])</p> <p>我已經找到了cURL指令的一部分,如下所示:</p> <pre class="brush:php;toolbar:false;">curl -d "userid=1&filecomment=這是一個圖片檔案" --data-binary @"/home/user1/Desktop/test.jpg " localhost/uploader.php</pre> <p>我遇到的問題如下:</p> <pre class="brush:php;toolbar:false;">注意:在/var/www/uploader.php中未定義索引:image</pre> <p>問題是我在PHP腳本中使用$_FILES['image']來接收檔案。 </p> <p>我該如何相應地調整我的cURL指令? </p>
P粉541796322P粉541796322446 天前458

全部回覆(2)我來回復

  • P粉189606269

    P粉1896062692023-08-22 11:11:35

    將使用者id作為路徑變數捕獲(建議):

    curl -i -X POST -H "Content-Type: multipart/form-data" 
    -F "data=@test.mp3" http://mysuperserver/media/1234/upload/

    將使用者id作為表單的一部分捕獲:

    curl -i -X POST -H "Content-Type: multipart/form-data" 
    -F "data=@test.mp3;userid=1234" http://mysuperserver/media/upload/

    或:

    curl -i -X POST -H "Content-Type: multipart/form-data" 
    -F "data=@test.mp3" -F "userid=1234" http://mysuperserver/media/upload/

    回覆
    0
  • P粉621033928

    P粉6210339282023-08-22 00:18:22

    您需要使用-F選項:
    -F/--form <name=content> 指定HTTP多部分POST資料 (H)

    請嘗試以下內容:

    curl \
      -F "userid=1" \
      -F "filecomment=这是一个图片文件" \
      -F "image=@/home/user1/Desktop/test.jpg" \
      localhost/uploader.php

    回覆
    0
  • 取消回覆