首頁 後端開發 php教程 关于一次上传多个图片的插件有没有?解决方法

关于一次上传多个图片的插件有没有?解决方法

Jun 13, 2016 am 10:25 AM
data files name quot

关于一次上传多个图片的插件有没有?
像discuz发帖那样,一次上传多个图片,然后将所有上传的图片路径插入到编辑器中。

有没有?

------解决方案--------------------
找个JS批量上传插件,主要是美观而已,技术角度还是个表单。

从http协议实现角度,下面的php代码是一个活生生的协议细节:

PHP code

1

2

3

4

5

6

7

<?php function do_post_request($url, $postdata, $files = null) {     $data = "";     $boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10);            //Collect Postdata     foreach($postdata as $key => $val)     {         $data .= "--$boundary\n";         $data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n";     }          $data .= "--$boundary\n";         //Collect Filedata     foreach($files as $key =&gt; $file)     {         $fileContents = file_get_contents($file['tmp_name']);                 $data .= "Content-Disposition: form-data; name=\"{$key}\"; filename=\"{$file['name']}\"\n";         $data .= "Content-Type: image/jpeg\n";         $data .= "Content-Transfer-Encoding: binary\n\n";         $data .= $fileContents."\n";         $data .= "--$boundary--\n";     }       $params = array('http' =&gt; array(            'method' =&gt; 'POST',            'header' =&gt; 'Content-Type: multipart/form-data; boundary='.$boundary,            'content' =&gt; $data         ));    $ctx = stream_context_create($params);    $fp = fopen($url, 'rb', false, $ctx);       if (!$fp) {       throw new Exception("Problem with $url, $php_errormsg");    }      $response = @stream_get_contents($fp);    if ($response === false) {       throw new Exception("Problem reading data from $url, $php_errormsg");    }    return $response; } //set data (in this example from post) //sample data $postdata = array(     'name' =&gt; $_POST['name'],     'age' =&gt; $_POST['age'],     'sex' =&gt; $_POST['sex'] ); //sample image $files['image'] = $_FILES['image']; do_post_request("http://example.com", $postdata, $files); ?&gt;<br><font color="#e78608">------解决方案--------------------</font><br>swfopload<br><font color="#e78608">------解决方案--------------------</font><br>在学习PHP中可能会遇到PHP上传多张图片问题,上传图片需要对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。多图片上传基本实现方法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个循环的处理。下面是PHP多图片上传的代码示例:<br><br>1.<?php   <br />2.//图片目录 <br>3.$img_dir="../upload/"; <br>4.//……html显示上传界面 <br>5./*图片上传处理*/ <br>6.//把图片传到服务器 <br>7.//初始化变量 <br>8.$uploaded=0; <br>9.$unuploaded=0; <br>10.//只允许五张图片上传 <br>11.for($i=0;$i12.{ <br>13.//获取当前图片的信息 <br>14.$is_file=$_FILES['imgfile']['name'][$i]; <br>15.//如果当前图片不为空 <br>16.if(!empty($is_file)) <br>17.{ <br>18.//把当前图片的信息存储到变量里 <br>19.$result[$i]=" <br>20.<trclasstrclass>  <br>21.<td>".$_FILES['imgfile']['name'][$i]."</td>  <br>22.<td>".round($_FILES['imgfile']['size'][$i]/1024,2)."K</td>  <br>23.<td>".$_FILES['imgfile']['type'][$i]."</td>  <br>24.<td>"; <br>25.//判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功 <br>26.if( <br>27.$_FILES['imgfile']['type'][$i]=="image/pjpeg"|| <br>28.$_FILES['imgfile']['type'][$i]=="image/gif"|| <br>29.$_FILES['imgfile']['type'][$i]=="image/x-png"|| <br>30.$_FILES['imgfile']['type'][$i]=="image/bmp" <br>31.) <br>32.{ <br>33.//如果上传的文件没有在服务器上存在 <br>34.if(!file_exists($img_dir.$_FILES['imgfile']['name'][$i])) <br>35.{ <br>36.//把图片文件从临时文件夹中转移到我们指定上传的目录中 <br>37.move_uploaded_file($_FILES['imgfile']['tmp_name'][$i], <br>38.$img_dir.$_FILES['imgfile']['name'][$i]); <br>39.$result[$i].="成功"; <br>40.$uploaded++; <br>41.} <br>42.else//如果文件已经在服务器上存在 <br>43.{ <br>44.$result[$i].="<fontcolor>文件已存在";<div class="clear">

                  

               

               

         

            </div></fontcolor>

</td></trclasstrclass>

登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用Java中的Files函數進行檔案操作 如何使用Java中的Files函數進行檔案操作 Jun 26, 2023 pm 04:21 PM

如何使用Java中的Files函數進行檔案操作

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

files是什麼文件 files是什麼文件 Dec 20, 2023 pm 02:11 PM

files是什麼文件

data資料夾裡面是什麼數據 data資料夾裡面是什麼數據 May 05, 2023 pm 04:30 PM

data資料夾裡面是什麼數據

mysql load data亂碼怎麼辦 mysql load data亂碼怎麼辦 Feb 16, 2023 am 10:37 AM

mysql load data亂碼怎麼辦

使用Java 11中的新的Files類別和Path類別進行檔案系統操作 使用Java 11中的新的Files類別和Path類別進行檔案系統操作 Jul 30, 2023 pm 10:25 PM

使用Java 11中的新的Files類別和Path類別進行檔案系統操作

AI 專案失敗率高達 80%——研究指出問題識別不佳以及主要問題中對最新技術趨勢的關注 AI 專案失敗率高達 80%——研究指出問題識別不佳以及主要問題中對最新技術趨勢的關注 Aug 31, 2024 am 12:59 AM

AI 專案失敗率高達 80%——研究指出問題識別不佳以及主要問題中對最新技術趨勢的關注

xdata和data有哪些差別 xdata和data有哪些差別 Dec 11, 2023 am 11:30 AM

xdata和data有哪些差別

See all articles