Mein HTML-Code ist (AJAX-Methode):Hochladen multpile Dateien mit mehreren Eingängen
<?php
$i = 1;
while($i < 10){
?>
<div id="photoManagement<?php echo $i; ?>">
<div class="form-group">
<label for="contenu" class="col-lg-2 control-label">Choix de la photo <?php echo $i; ?></label>
<div class="col-lg-7">
<input id="photo<?php echo $i; ?>" type="file" name="image<?php echo $i; ?>" accept="image/*">
</div>
</div><br /><br />
<div class="form-group" style="margin-bottom: 0;">
<div id="image_preview<?php echo $i; ?>" class="col-lg-12">
<div class="thumbnail hidden">
<img src="http://placehold.it/5" alt="">
<div class="caption">
<h4></h4>
<p></p>
<p><button id="cancelImg<?php echo $i; ?>" type="button" class="btn btn-flat btn-danger">Annuler</button>
<button id="sendImg<?php echo $i; ?>" location.hred = "#portfolioImg1" class="pull-right btn btn-dark btn-theme-colored btn-flat mr-5">Ajouter</button></p>
</div>
</div>
</div>
</div>
</div>
<?php
$i++;
}
?>
Der Tag weit hinter ist. Deshalb wird es nicht angezeigt.
Meine PHP (AJAX-Methode):
<?php
header("Access-Control-Allow-Origin: *");
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) //sécurité pour ne pas avoir d'accès direct sur le fichier
{
include('../MODEL/sqlConnexion.php');
//Partie traitement des photos
foreach($_FILES as $photo)
{
$key = key($_FILES);
if (isset($photo))
{
if ($photo['error'] == 0)
{
// Test pour voir si l'extension du fichier est bien autorisée
$file_path = pathinfo($photo['name']);
$file_extension = $file_path['extension'];
$allowed_extensions = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($file_extension, $allowed_extensions))
{
// Test pour voir si le fichier n'est pas trop gros
if ($photo['size'] <= 1048576)
{
$response['check'] = 'OK';
$path = '../images/chevaux/' . $_POST['horseName'] . '/' . $key . '.' . $file_extension;
$folder = '../images/chevaux/' . $_POST['horseName'];
if (!is_dir($folder))
{
mkdir($folder);
}
move_uploaded_file($photo['tmp_name'], $path);
}
else
{
$response[$nomImage] = "Le fichier " . $key . " est trop volumineux.";
}
}
else
{
$response[$nomImage] = "L'extension du fichier " . $key . " n'est pas prise en charge, les extensions prises en charge sont jpg, jpeg, gif, et png.";
}
}
elseif ($photo['error'] != 4)
{
$response[$nomImage] = "Le fichier " . $key . "est en erreur.";
}
}
}
if ((count($response) == 1) && ($response['check'] == 'OK'))
{
$response['check'] = 'OK';
}
else
{
$response['check'] = 'NOTOK';
}
echo json_encode($response);
}
Der Ordner auf dem Server erstellt wird, sondern nur die erste Datei des ersten Eingangs hochgeladen wird in Deshalb habe ich nicht die ganze Javascript gelegt hat. Code, der perfekt funktioniert. Das einzige Problem mit dem Code ist "move_uploaded_file".
Haben Sie eine Idee?
haben Sie Lese-/Schreibzugriff auf den Ordner – Toxide82
Ja, die erste Datei ist korrekt atm hochgeladen. Das Problem ist die nächsten Dateien .. – Kuartz
sagt es der Ordner existiert das zweite Mal? – Toxide82