簡體   English   中英

在php中上傳帶有POST請求的文件

[英]Upload a file with a POST request in php

將zip文件上傳到服務器時出現問題。 move_uploaded_file函數每次都會失敗。 我不明白這個問題。 文件夾權限為777,文件大小約為2 Mb。

<html>
  <body>

    <form action="../API/upload_zip.php" method="post" enctype="multipart/form-data">
        Select image to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Zip" name="submit">
    </form>

  </body>
</html>

--

<?php
    $target_dir = "../uploads/";
    $machineID="H725";
    $path=$target_dir.$machineID;
    if (!file_exists($path)) 
    {
        if(!mkdir($path, 0777, true)) die('Failed to create folders 1...');

        chmod($path, 0777);
    }      

    $pathWithData= $path."/".date("Y_m_d_h_i");
    if (!file_exists($pathWithData)) 
    {
        if(!mkdir($pathWithData, 0777, true)) die('Failed to create folders 2...');

        chmod($pathWithData, 0777);
    } 

    $final_path = $pathWithData ."/". basename($_FILES["fileToUpload"]["name"]);
    echo "PATH: ".$final_path."<br>";


    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $final_path))
    {
        echo "<br>The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    }
    else 
    {
        echo "<br>Sorry, there was an error uploading your file.";
    }
?>

可以肯定的是,但是您的主機有一個file_uploads = On ,對嗎? 檢查php.ini或創建一個phpinfo();

另外,嘗試用var_dump($_FILES);回顯$ _FILES var_dump($_FILES); 如果上傳沒有問題,則[錯誤]應該為0。 這些是返回的錯誤常量:

UPLOAD_ERR_OK: 0
UPLOAD_ERR_INI_SIZE: 1
UPLOAD_ERR_FORM_SIZE: 2
UPLOAD_ERR_NO_TMP_DIR: 6
UPLOAD_ERR_CANT_WRITE: 7
UPLOAD_ERR_EXTENSION: 8
UPLOAD_ERR_PARTIAL: 3

在php.ini中,更改以下值:

upload_max_filesize = 100M
post_max_size = 100M

暫無
暫無

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

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