欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-21 12:27:48
...
关于一次上传多个图片的插件有没有?
像discuz发帖那样,一次上传多个图片,然后将所有上传的图片路径插入到编辑器中。

有没有?

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

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

PHP code
 $val) 
    { 
        $data .= "--$boundary\n"; 
        $data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n"; 
    } 
     
    $data .= "--$boundary\n"; 
    
    //Collect Filedata 
    foreach($files as $key => $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' => array( 
           'method' => 'POST', 
           'header' => 'Content-Type: multipart/form-data; boundary='.$boundary, 
           'content' => $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' => $_POST['name'], 
    'age' => $_POST['age'], 
    'sex' => $_POST['sex'] 
); 

//sample image 
$files['image'] = $_FILES['image']; 

do_post_request("http://example.com", $postdata, $files); 
?>

------解决方案--------------------
swfopload
------解决方案--------------------
在学习PHP中可能会遇到PHP上传多张图片问题,上传图片需要对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。多图片上传基本实现方法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个循环的处理。下面是PHP多图片上传的代码示例:

1.2.//图片目录
3.$img_dir="../upload/";
4.//……html显示上传界面
5./*图片上传处理*/
6.//把图片传到服务器
7.//初始化变量
8.$uploaded=0;
9.$unuploaded=0;
10.//只允许五张图片上传
11.for($i=0;$i12.{
13.//获取当前图片的信息
14.$is_file=$_FILES['imgfile']['name'][$i];
15.//如果当前图片不为空
16.if(!empty($is_file))
17.{
18.//把当前图片的信息存储到变量里
19.$result[$i]="
20.
21.".$_FILES['imgfile']['name'][$i]."
22.".round($_FILES['imgfile']['size'][$i]/1024,2)."K
23.".$_FILES['imgfile']['type'][$i]."
24.";
25.//判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功
26.if(
27.$_FILES['imgfile']['type'][$i]=="image/pjpeg"||
28.$_FILES['imgfile']['type'][$i]=="image/gif"||
29.$_FILES['imgfile']['type'][$i]=="image/x-png"||
30.$_FILES['imgfile']['type'][$i]=="image/bmp"
31.)
32.{
33.//如果上传的文件没有在服务器上存在
34.if(!file_exists($img_dir.$_FILES['imgfile']['name'][$i]))
35.{
36.//把图片文件从临时文件夹中转移到我们指定上传的目录中
37.move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],
38.$img_dir.$_FILES['imgfile']['name'][$i]);
39.$result[$i].="成功";
40.$uploaded++;
41.}
42.else//如果文件已经在服务器上存在
43.{
44.$result[$i].="文件已存在";关于一次上传多个图片的插件有没有?解决方法

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 关于一次上传多个图片的插件有没有?解决方法
  • 专题推荐

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

    认证0级讲师

    推荐视频教程
  • 关于一次上传多个图片的插件有没有?解决方法javascript初级视频教程
  • 关于一次上传多个图片的插件有没有?解决方法jquery 基础视频教程
  • 视频教程分类