Intereting Posts
Отбрасывание десятичных знаков PHP без округления Используя .htaccess, запретите пользователям доступ к каталогам ресурсов и тем самым разрешить доступ к ресурсам исходного кода mysql_connect (): соединение не может быть выполнено, потому что целевая машина активно отказалась от него Наследование класса таблицы Doctrine, когда один подкласс не имеет дополнительных атрибутов PHP обрезка не работает, возвращает черное изображение – Система обрезки изображений Кнопка регистрации / регистрации не работает (PHP AND AJAX) Есть ли причина использовать ключевое слово self? PHP: Как пропущены комментарии? Что делает HTML? mysqli_error () ожидает, что параметр 1 будет mysqli, null Декларация методов должна быть совместима с родительскими методами в PHP Выбрать узел на основе атрибута и изменить поднод Android HttpPost отправляет пустой $ _POST скрипту PHP Нет данных, полученных из MySQL в android listView по заданному ID Доступ к константам класса PHP

Загрузка нескольких файлов в php

Я хочу загрузить несколько файлов и сохранить их в папке, а также получить путь и сохранить его в базе данных … Любой хороший пример, который вы искали для загрузки нескольких файлов …

Примечание. Файлы могут быть любого типа …

Related of "Загрузка нескольких файлов в php"

Я знаю, что это старый пост, но некоторые дополнительные объяснения могут быть полезны для тех, кто пытается загрузить несколько файлов … Вот что вам нужно сделать:

  • Имя входа должно быть определено как массив, то есть name = "inputName []"
  • Элемент ввода должен иметь несколько = «несколько» или просто несколько
  • В вашем файле PHP используйте синтаксис «$ _FILES ['inputName'] ['param'] [index]"
  • Убедитесь, что вы ищете пустые имена файлов и пути , массив может содержать пустые строки . Используйте array_filter () перед подсчетом.

вот пример и грязный пример (показывающий только соответствующий код)

HTML:

<input name="upload[]" type="file" multiple="multiple" /> 

PHP:

 //$files = array_filter($_FILES['upload']['name']); something like that to be used before processing files. // Count # of uploaded files in array $total = count($_FILES['upload']['name']); // Loop through each file for($i=0; $i<$total; $i++) { //Get the temp file path $tmpFilePath = $_FILES['upload']['tmp_name'][$i]; //Make sure we have a filepath if ($tmpFilePath != ""){ //Setup our new file path $newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i]; //Upload the file into the temp dir if(move_uploaded_file($tmpFilePath, $newFilePath)) { //Handle other code here } } } 

Надеюсь, это поможет!

Несколько файлов можно выбрать, а затем загрузить с помощью
<input type='file' name='file[]' multiple>
Пример скрипта php, который выполняет загрузку:

 <html> <title>Upload</title> <?php session_start(); $target=$_POST['directory']; if($target[strlen($target)-1]!='/') $target=$target.'/'; $count=0; foreach ($_FILES['file']['name'] as $filename) { $temp=$target; $tmp=$_FILES['file']['tmp_name'][$count]; $count=$count + 1; $temp=$temp.basename($filename); move_uploaded_file($tmp,$temp); $temp=''; $tmp=''; } header("location:../../views/upload.php"); ?> </html> 

Выбранные файлы принимаются как массив с

$_FILES['file']['name'][0] сохранение имени первого файла.
$_FILES['file']['name'][1] сохранение имени второго файла.
и так далее.

HTML

  1. создать div с id='dvFile' ;

  2. создать button ;

  3. onclick этой функции вызова кнопки add_more()

JavaScript

 function add_more() { var txt = "<br><input type=\"file\" name=\"item_file[]\">"; document.getElementById("dvFile").innerHTML += txt; } 

PHP

 if(count($_FILES["item_file"]['name'])>0) { //check if any file uploaded $GLOBALS['msg'] = ""; //initiate the global message for($j=0; $j < count($_FILES["item_file"]['name']); $j++) { //loop the uploaded file array $filen = $_FILES["item_file"]['name']["$j"]; //file name $path = 'uploads/'.$filen; //generate the destination path if(move_uploaded_file($_FILES["item_file"]['tmp_name']["$j"],$path)) { //upload the file $GLOBALS['msg'] .= "File# ".($j+1)." ($filen) uploaded successfully<br>"; //Success message } } } else { $GLOBALS['msg'] = "No files found to upload"; //No file upload message } 

Таким образом, вы можете добавлять файлы / изображения, сколько потребуется, и обрабатывать их через php-скрипт.

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <?php $max_no_img=4; // Maximum number of images value to be set here echo "<form method=post action='' enctype='multipart/form-data'>"; echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=center>"; for($i=1; $i<=$max_no_img; $i++){ echo "<tr><td>Images $i</td><td> <input type=file name='images[]' class='bginput'></td></tr>"; } echo "<tr><td colspan=2 align=center><input type=submit value='Add Image'></td></tr>"; echo "</form> </table>"; while(list($key,$value) = each($_FILES['images']['name'])) { //echo $key; //echo "<br>"; //echo $value; //echo "<br>"; if(!empty($value)){ // this will check if any blank field is entered $filename =rand(1,100000).$value; // filename stores the value $filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line $add = "upload/$filename"; // upload directory path is set //echo $_FILES['images']['type'][$key]; // uncomment this line if you want to display the file type //echo "<br>"; // Display a line break copy($_FILES['images']['tmp_name'][$key], $add); echo $add; // upload the file to the server chmod("$add",0777); // set permission to the file. } } ?> </body> </html> 

Простым является то, что просто сначала подсчитайте массив файлов, затем в цикле while вы можете легко сделать это, как

 $count = count($_FILES{'item_file']['name']); 

теперь у вас есть общее количество файлов.

В цикле while сделайте так:

 $i = 0; while($i<$count) { Upload one by one like we do normally $i++; } в $i = 0; while($i<$count) { Upload one by one like we do normally $i++; } 

Это не отличается от загрузки одного файла – $_FILES – это массив, содержащий все и все загруженные файлы.

В руководстве по PHP есть глава: Загрузка нескольких файлов

Если вы хотите включить несколько загрузок файлов с легким выбором в конце пользователя (выбор нескольких файлов одновременно, а не заполнение полей загрузки), посмотрите SWFUpload . Он работает иначе, чем обычная форма загрузки файлов, и требует Flash для работы. SWFUpload был устаревшим вместе с Flash. Проверьте другие, более новые ответы для правильного подхода.

Вот функция, которую я написал, которая возвращает более понятный массив $_FILES .

 function getMultiple_FILES() { $_FILE = array(); foreach($_FILES as $name => $file) { foreach($file as $property => $keys) { foreach($keys as $key => $value) { $_FILE[$name][$key][$property] = $value; } } } return $_FILE; } 

Я запускаю цикл foreach с элементом ошибки, выгляжу как

  foreach($_FILES['userfile']['error'] as $k=>$v) { $uploadfile = 'uploads/'. basename($_FILES['userfile']['name'][$k]); if (move_uploaded_file($_FILES['userfile']['tmp_name'][$k], $uploadfile)) { echo "File : ", $_FILES['userfile']['name'][$k] ," is valid, and was successfully uploaded.\n"; } else { echo "Possible file : ", $_FILES['userfile']['name'][$k], " upload attack!\n"; } } 

Просто наткнулся на следующее решение:

http://www.mydailyhacks.org/2014/11/05/php-multifile-uploader-for-php-5-4-5-5/

это готовый PHP Multi File Upload Script с формой, где вы можете добавить несколько входов и индикатор выполнения AJAX. Он должен работать сразу после распаковки на сервере …

Мы можем легко загрузить несколько файлов с помощью php, используя приведенный ниже скрипт.

Скачать полный исходный код и предварительный просмотр

 <?php if (isset($_POST['submit'])) { $j = 0; //Variable for indexing uploaded image $target_path = "uploads/"; //Declaring Path for uploaded images for ($i = 0; $i < count($_FILES['file']['name']); $i++) {//loop to get individual element from the array $validextensions = array("jpeg", "jpg", "png"); //Extensions which are allowed $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.) $file_extension = end($ext); //store extensions in the variable $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image $j = $j + 1;//increment the number of uploaded images according to the files in array if (($_FILES["file"]["size"][$i] < 100000) //Approx. 100kb files can be uploaded. && in_array($file_extension, $validextensions)) { if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {//if file moved to uploads folder echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>'; } else {//if file was not moved. echo $j. ').<span id="error">please try again!.</span><br/><br/>'; } } else {//if file size and file type was incorrect. echo $j. ').<span id="error">***Invalid file Size or Type***</span><br/><br/>'; } } } ?> 
 $property_images = $_FILES['property_images']['name']; if(!empty($property_images)) { for($up=0;$up<count($property_images);$up++) { move_uploaded_file($_FILES['property_images']['tmp_name'][$up],'../images/property_images/'.$_FILES['property_images']['name'][$up]); } } 

Хорошая ссылка на:

PHP Single File Uploading с различными базовыми объяснениями .

Загрузка файла PHP с помощью проверки

Загрузка нескольких файлов PHP с проверкой Нажмите здесь, чтобы скачать исходный код

PHP / jQuery Загрузка нескольких файлов с помощью ProgressBar и проверки (нажмите здесь, чтобы загрузить исходный код)

Как загружать файлы в PHP и хранить в базе данных MySql (нажмите здесь, чтобы скачать исходный код)

 extract($_POST); $error=array(); $extension=array("jpeg","jpg","png","gif"); foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) { $file_name=$_FILES["files"]["name"][$key]; $file_tmp=$_FILES["files"]["tmp_name"][$key]; $ext=pathinfo($file_name,PATHINFO_EXTENSION); if(in_array($ext,$extension)) { if(!file_exists("photo_gallery/".$txtGalleryName."/".$file_name)) { move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$file_name); } else { $filename=basename($file_name,$ext); $newFileName=$filename.time().".".$ext; move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$newFileName); } } else { array_push($error,"$file_name, "); } } 

и вы должны проверить свой HTML-код

 <form action="create_photo_gallery.php" method="post" enctype="multipart/form-data"> <table width="100%"> <tr> <td>Select Photo (one or multiple):</td> <td><input type="file" name="files[]" multiple/></td> </tr> <tr> <td colspan="2" align="center">Note: Supported image format: .jpeg, .jpg, .png, .gif</td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Create Gallery" id="selectedButton"/></td> </tr> </table> </form> 

Хорошая ссылка на:

PHP Single File Uploading с различными базовыми объяснениями .

Загрузка файла PHP с помощью проверки

Загрузка нескольких файлов PHP с проверкой Нажмите здесь, чтобы скачать исходный код

PHP / jQuery Загрузка нескольких файлов с помощью ProgressBar и проверки (нажмите здесь, чтобы загрузить исходный код)

Как загружать файлы в PHP и хранить в базе данных MySql (нажмите здесь, чтобы скачать исходный код)

этот простой скрипт работал для меня.

 <?php foreach($_FILES as $file){ //echo $file['name']; echo $file['tmp_name'].'</br>'; move_uploaded_file($file['tmp_name'], "./uploads/".$file["name"]); } ?>