簡體   English   中英

嘗試使用PHP將多個文件上傳到S3時出錯

[英]Error when trying to upload multiple files to S3 using PHP

我正在研究一個項目,以便能夠使用PHP從網站將文件上傳到Amazon S3 bucket

但是,我遇到了以下錯誤的問題:

fopen(uploadDoc / 1.jpg):無法打開流:沒有此類文件或目錄

我正在遍歷多個文件以分別上傳它們,如下所示:

if (isset($_FILES['files']))
{
    for ($i = 0; $i < 10; $i++)
    {
        if (!empty($_FILES['files']['name'][$i]))
        {
            $name = $_FILES['files']['name'][$i];
            $tmp_name = $_FILES['files']['tmp_name'][$i];
            $ext = explode('.', $name);
            $ext = strtolower(end($ext));
            if ($ext == 'zip') { $temp_file_path = "uploadZip/{$name}"; $s3Key = "zip"; }
            else { $temp_file_path = "uploadDoc/{$name}"; $s3Key = "docs"; }
            try
            {
                $body = fopen($temp_file_path, 'rb');
                $s3->putObject([
                    'Bucket' => AWS_BUCKET,
                    'Key' => "{$s3Key}/{$name}",
                    'Body' => $body,
                    'ACL' => "public-read"
                ]);
            }
            catch (S3Exception $e)
            {
                die('There was an error uploading ' . $e->getMessage());
            }
            fclose($body);
            unlink($temp_file_path);
        }
    }
}

當我嘗試使用相同的代碼而不是循環上傳單個文件時,它可以正常工作,所以我真的很困惑。

以下是用於上傳文件的表格:

<form action="" method="post" enctype="multipart/form-data">
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input id="file" type="file" name="files[]"><br>
            <input name="upload" type="submit" value="Upload" class="general-btn blue">
        </form>

任何幫助將不勝感激

我發現自己在代碼中犯了一些錯誤。

首先,我錯過了上面提供的PHP代碼片段中的一行代碼,這是:

if ($ext == 'zip') { $temp_file_path = "uploadZip/{$tmp_file_name}"; $s3Key = "zip"; }
else { $temp_file_path = "uploadDoc/{$tmp_file_name}"; $s3Key = "docs"; }
move_uploaded_file($tmp_name, $temp_file_path);
try

發生的第二個錯誤是在上述HTML代碼段內,該代碼段通過將ID更改為其他ID,使所有輸入具有相同的文件ID,文件成功上傳且沒有錯誤

謝謝

暫無
暫無

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

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