Ich arbeite an einem Projekt, um Dateien von einer Website mit PHP auf Amazon S3 bucket
hochladen zu können.Fehler beim Hochladen mehrerer Dateien nach S3 mit PHP
Allerdings bin ich schlagen ein Problem, wo es mit dem folgenden Fehler kommt:
fopen(uploadDoc/1.jpg): failed to open stream: No such file or directory
ich durch die mehrere Dateien am Looping sie wie so individuell laden:
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);
}
}
}
Wenn ich versucht, eine einzelne Datei mit dem gleichen Code, aber nicht in einer Schleife hochladen, es funktioniert gut, so dass ich wirklich verwirrt bin.
Im Folgenden finden Sie das Formular verwendet werden, um die Dateien zu laden:
<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>
Jede Hilfe wird sehr