Я пытался сделать эту работу довольно долгое время. Но я не могу заставить его работать. Я хотел иметь форму загрузки нескольких изображений, используя только один вход.
это мой upload.php
<?php include("../include/session.php"); session_start(); $allowedExts = array("jpeg", "jpg", "png", "gif"); $extension = end(explode(".", $_FILES["upload"]["name"])); if(isset($_FILES['upload']['tmp_name'])) { for($i=0; $i < count($_FILES['upload']['tmp_name']);$i++) { if (($_FILES["upload"]["name"] < 90000000000000000) && in_array($extension, $allowedExts)) { if ($_FILES["upload"]["error"] > 0) { header('location: '.$error); die; } else { if (file_exists("../icons/".$_SESSION["username"] ."/" . $_FILES["upload"]["name"])) { echo "error"; } else { if(!is_dir("../icons/". $_SESSION["username"] ."/")) { mkdir("../icons/". $_SESSION["username"] ."/"); } $temp = explode(".",$_FILES["upload"]["name"]); $file = rand(1,999999999999) . '.' .end($temp); move_uploaded_file($_FILES["upload"]["tmp_name"], "../icons/". $_SESSION["username"] ."/". $file); } } } } else { echo "yep error"; } } } ?>
если я выберу линии
if(isset($_FILES['upload']['tmp_name'])) { for($i=0; $i < count($_FILES['upload']['tmp_name']);$i++) {
С соответствующей закрывающей скобкой она работает нормально. Изображение загружается отлично. Но дело в том, что это только позволяет мне загрузить его.
Пожалуйста, мне действительно нужен ваш опыт. Спасибо
Хорошая ссылка на:
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 и предварительного просмотра, доступного по ссылке ниже.
Образец кода:
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/>'; } } }
http://www.allinworld99.blogspot.com/2015/05/php-multiple-file-upload.html
<?php if(isset($_POST['btnSave'])){ $j = 0; //Variable for indexing uploaded image $file_name_all=""; $target_path = "uploads/"; //Declaring Path for uploaded images //loop to get individual element from the array for ($i = 0; $i < count($_FILES['file']['name']); $i++) { $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 $basename=basename($_FILES['file']['name'][$i]); //echo"hi its base name".$basename; $target_path = $target_path .$basename;//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] < (1024*1024)) //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/>'; /***********************************************/ $file_name_all.=$target_path."*"; $filepath = rtrim($file_name_all, '*'); //echo"<img src=".$filepath." >"; /*************************************************/ } 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/>'; } } $qry="INSERT INTO `eb_re_about_us`(`er_abt_us_id`, `er_cli_id`, `er_cli_abt_info`, `er_cli_abt_img`) VALUES (NULL,'$b1','$b5','$filepath')"; $res = mysql_query($qry,$conn); if($res) echo "<br/><br/>Client contact Person Information Details Saved successfully"; //header("location: nextaddclient.php"); //exit(); else echo "<br/><br/>Client contact Person Information Details not saved successfully"; } ?>
Здесь $ file_name_all И $ filepath получают 1 имя файла uplode 2 раза?
PHP-код
<?php error_reporting(0); session_start(); include('config.php'); //define session id $session_id='1'; define ("MAX_SIZE","9000"); function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } //set the image extentions $valid_formats = array("jpg", "png", "gif", "bmp","jpeg"); if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { $uploaddir = "uploads/"; //image upload directory foreach ($_FILES['photos']['name'] as $name => $value) { $filename = stripslashes($_FILES['photos']['name'][$name]); $size=filesize($_FILES['photos']['tmp_name'][$name]); //get the extension of the file in a lower case format $ext = getExtension($filename); $ext = strtolower($ext); if(in_array($ext,$valid_formats)) { if ($size < (MAX_SIZE*1024)) { $image_name=time().$filename; echo "<img src='".$uploaddir.$image_name."' class='imgList'>"; $newname=$uploaddir.$image_name; if (move_uploaded_file($_FILES['photos']['tmp_name'][$name], $newname)) { $time=time(); //insert in database mysql_query("INSERT INTO user_uploads(image_name,user_id_fk,created) VALUES('$image_name','$session_id','$time')"); } else { echo '<span class="imgList">You have exceeded the size limit! so moving unsuccessful! </span>'; } } else { echo '<span class="imgList">You have exceeded the size limit!</span>'; } } else { echo '<span class="imgList">Unknown extension!</span>'; } } } ?>
в<?php error_reporting(0); session_start(); include('config.php'); //define session id $session_id='1'; define ("MAX_SIZE","9000"); function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } //set the image extentions $valid_formats = array("jpg", "png", "gif", "bmp","jpeg"); if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { $uploaddir = "uploads/"; //image upload directory foreach ($_FILES['photos']['name'] as $name => $value) { $filename = stripslashes($_FILES['photos']['name'][$name]); $size=filesize($_FILES['photos']['tmp_name'][$name]); //get the extension of the file in a lower case format $ext = getExtension($filename); $ext = strtolower($ext); if(in_array($ext,$valid_formats)) { if ($size < (MAX_SIZE*1024)) { $image_name=time().$filename; echo "<img src='".$uploaddir.$image_name."' class='imgList'>"; $newname=$uploaddir.$image_name; if (move_uploaded_file($_FILES['photos']['tmp_name'][$name], $newname)) { $time=time(); //insert in database mysql_query("INSERT INTO user_uploads(image_name,user_id_fk,created) VALUES('$image_name','$session_id','$time')"); } else { echo '<span class="imgList">You have exceeded the size limit! so moving unsuccessful! </span>'; } } else { echo '<span class="imgList">You have exceeded the size limit!</span>'; } } else { echo '<span class="imgList">Unknown extension!</span>'; } } } ?>
Код Jquery
<script> $(document).ready(function() { $('#photoimg').die('click').live('change', function() { $("#imageform").ajaxForm({target: '#preview', beforeSubmit:function(){ console.log('ttest'); $("#imageloadstatus").show(); $("#imageloadbutton").hide(); }, success:function(){ console.log('test'); $("#imageloadstatus").hide(); $("#imageloadbutton").show(); }, error:function(){ console.log('xtest'); $("#imageloadstatus").hide(); $("#imageloadbutton").show(); } }).submit(); }); }); </script>
Многоуровневое изображение с другим taBLE $ sql1 = "INSERT INTO event (title) VALUES ('$ title')";
$result1 = mysqli_query($connection,$sql1) or die(mysqli_error($connection)); $lastid= $connection->insert_id; foreach ($_FILES["file"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK ){ $name = $lastid.$_FILES['file']['name'][$key]; $target_dir = "photo/"; $sql2 = "INSERT INTO photos(image,eventid) VALUES ('".$target_dir.$name."','".$lastid."')"; $result2 = mysqli_query($connection,$sql2) or die(mysqli_error($connection)); move_uploaded_file($_FILES['file']['tmp_name'][$key],$target_dir.$name); } }
И как получить
$ query = "SELECT * FROM event"; $ result = mysqli_query ($ connection, $ query) или die (mysqli_error ());
if($result->num_rows > 0) { while($r = mysqli_fetch_assoc($result)){ $eventid= $r['id']; $sqli="select id,image from photos where eventid='".$eventid."'"; $resulti=mysqli_query($connection,$sqli); $image_json_array = array(); while($row = mysqli_fetch_assoc($resulti)){ $image_id = $row['id']; $image_name = $row['image']; $image_json_array[] = array("id"=>$image_id,"name"=>$image_name); } $msg1[] = array ("imagelist" => $image_json_array); }