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

php中文网
发布: 2016-06-13 13:29:01
原创
990人浏览过

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

有没有?

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

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

PHP code
<?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>文件已存在";
                 
              
              
        
            </fontcolor>
</td></trclasstrclass>
登录后复制
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号