簡體   English   中英

無法使用php move_uploaded_file()移動上載的文件

[英]Cant move uploaded file using php move_uploaded_file()

我有一個頁面,允許用戶在我的網站上發布廣告。 該頁面允許他們上載有關產品的多張照片。

我目前有兩種形式。 第一個處理產品的詳細信息,第二個處理一個dropzone(使用dropzone.js),允許他們上傳照片。 我希望將這些表格分開,因為照片可能非常大,我希望它們立即上傳而不是等待用戶按提交。 這樣總體上可以節省時間。

因此,將照片放入dropzone后,它們會上傳到tmp目錄(以防用戶未發布整個廣告)。 用戶提交第一個表單后,我將使用move_uploaded_file()將文件移動到其永久位置。 這是我正在使用的代碼:

for ($loop=1; $loop<=6; $loop++) {

    // Retrieve filename and path
    $file_path = "image_".$loop;
    $tmp_path = $form_data[$file_path]; // $form_data is an array of POST data and contains the file_path of the image in the tmp dir

    // Move file
    $destination_path = 'images/adverts/'.$advert->id;
    $success = move_uploaded_file($tmp_path, $destination_path);

}

但是,move_uploaded_file()無法正常工作。 在查閱文檔之后,我可以看到move_uploaded_file()檢查是否使用HTTP POST上傳了文件(是)。 可以肯定的是,我進行了一項快速測試,以查看is_uploaded_file()在上傳的文件上是否返回TRUE,但是沒有返回。

is_uploaded_file()如何確定文件是否已上傳? 我想知道當我來移動文件時,php是否忘記了它已被上傳? 還有其他原因導致我的文件無法通過此操作嗎?

非常感謝

我想我已經深入到此...

move_uploaded_file()似乎僅在POST數據發送到的函數中起作用。 就我而言,我發送了兩個單獨的POST請求。 來自dropzone.js的第一個文件將圖像存儲在tmp目錄中。 如果我在接收該POST請求的函數中運行了is_uploaded_file(),則返回TRUE。

但是,一旦上傳到tmp目錄,我便以第二種形式在隱藏字段中插入了路徑。 我試圖在從第二種形式接收POST數據的函數中運行move_uploaded_file()(依次使用is_uploaded_file())。 但是,由於文件不是此POST數據的一部分(只是tmp dir的路徑),因此is_uploaded_file()返回false。

我希望這可以幫助某人...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM