Я пытаюсь использовать изображения загрузки, которые он отлично работает в браузере, но он не работает в iphone и ipad. Ниже приведены код и скриншоты для iphone
test.php --------- <?php if(isset($_POST['submit'])) { //echo "<pre>"; //print_r($_FILES); //exit; copy($_FILES["image1"]["tmp_name"],"upload/".$_FILES["image1"]["name"]); copy($_FILES["image2"]["tmp_name"],"upload/".$_FILES["image2"]["name"]); copy($_FILES["image3"]["tmp_name"],"upload/".$_FILES["image3"]["name"]); echo "Stored in: " . "upload/" . $_FILES["image1"]["name"]; echo "<br>"; echo "Stored in: " . "upload/" . $_FILES["image2"]["name"]; echo "<br>"; echo "Stored in: " . "upload/" . $_FILES["image3"]["name"]; } ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>demo</title> </head> <body> <form method="post" enctype="multipart/form-data"> image 1 : <input type="file" name="image1" ><br/> image 2 : <input type="file" name="image2" ><br/> image 3 : <input type="file" name="image3" ><br/> <input type="submit" name="submit" value="Submit"> </form> </body> </html>
Как видно из приведенного ниже массива, это отображается в iphone / ipad, имена изображений одинаковы для всех, и когда я пытаюсь проверить папку для загрузки, отображается только последнее изображение, т.е. третье изображение.
[image1] => Array ( [name] => image.jpg [type] => image/jpeg [tmp_name] => /tmp/phpewhdwx [error] => 0 [size] => 44009 ) [image2] => Array ( [name] => image.jpg [type] => image/jpeg [tmp_name] => /tmp/phpwYDYBM [error] => 0 [size] => 27762 ) [image3] => Array ( [name] => image.jpg [type] => image/jpeg [tmp_name] => /tmp/php0vqnB2 [error] => 0 [size] => 32961 )
Хорошо, я нашел решение 🙂
у нас есть проблема в ipad и iphone, поскольку они используют имя для всех изображений как image.jpg, поэтому, если мы используем несколько изображений, это переопределяется, поэтому нам нужно добавить rand () или любой уникальный ключ к имени во время копирования в папку.
$image1 = rand().$_FILES["image1"]["name"]; $image2 = rand().$_FILES["image2"]["name"]; $image3 = rand().$_FILES["image3"]["name"]; copy($_FILES["image1"]["tmp_name"],"upload/".$image1); copy($_FILES["image2"]["tmp_name"],"upload/".$image2); copy($_FILES["image3"]["tmp_name"],"upload/".$image3);