读书人

关于一次下传多个图片的插件有没有

发布时间: 2013-03-19 17:22:05 作者: rapoo

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

有没有?
[解决办法]
找个JS批量上传插件,主要是美观而已,技术角度还是个表单。

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

<?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 => $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
[解决办法]
本帖最后由 PhpNewnew 于 2012-05-26 10:56:05 编辑 在学习PHP中可能会遇到PHP上传多张图片问题,上传图片需要对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。多图片上传基本实现方法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个循环的处理。下面是PHP多图片上传的代码示例:

1.<?php
2.//图片目录
3.$img_dir="../upload/";
4.//……html显示上传界面
5./*图片上传处理*/
6.//把图片传到服务器
7.//初始化变量
8.$uploaded=0;
9.$unuploaded=0;
10.//只允许五张图片上传
11.for($i=0;$i<=5;$i++)
12.{
13.//获取当前图片的信息
14.$is_file=$_FILES['imgfile']['name'][$i];
15.//如果当前图片不为空
16.if(!empty($is_file))
17.{
18.//把当前图片的信息存储到变量里
19.$result[$i]="
20.<trclasstrclass=td2align=center>
21.<td>".$_FILES['imgfile']['name'][$i]."</td>
22.<td>".round($_FILES['imgfile']['size'][$i]/1024,2)."K</td>
23.<td>".$_FILES['imgfile']['type'][$i]."</td>
24.<td>";
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].="<fontcolor=red>文件已存在</font>";
45.$unuploaded++;
46.continue;
47.}
48.}
49.else
50.{
51.$result[$i].="<fontcolor=red>失败</font>";
52.$unuploaded++;
53.}
54.$result[$i].="</td></tr>";
55.}//endif
56.}//endfor
57.//如果没有选择任何图片
58.if(empty($result))
59.{
60.prompt_msg("错误信息","没有选择任何图片。","返回上一步","uploadimg.php?action=upload");
61.exit();
62.}
63.//显示所有上传后的结果

[解决办法]
该回复于2013-03-14 06:14:41被管理员删除
[解决办法]
引用:
引用:
像discuz发帖那样,一次上传多个图片,然后将所有上传的图片路径插入到编辑器中。

有没有?

网上有一个仿QQ相册上传插件的程序。
Xproer.ImageUploader:http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html


主界面
关于一次下传多个图片的插件有没有
图片列表
关于一次下传多个图片的插件有没有
添加图片
关于一次下传多个图片的插件有没有
编辑图片:
关于一次下传多个图片的插件有没有
提示信息:
关于一次下传多个图片的插件有没有


这个强,我们公司上次给客户做的一个网站也是用的这个WEB图片上传控件。
[解决办法]

图片列表
关于一次下传多个图片的插件有没有
添加图片
关于一次下传多个图片的插件有没有
编辑图片:
关于一次下传多个图片的插件有没有
提示信息:
关于一次下传多个图片的插件有没有

这个用户体验不错。现在的互联网产品做的也越来越好了,用户使用起来也越来越方便了。
[解决办法]

图片列表
关于一次下传多个图片的插件有没有
添加图片
关于一次下传多个图片的插件有没有
编辑图片:
关于一次下传多个图片的插件有没有
提示信息:
关于一次下传多个图片的插件有没有
整合代码

<!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>
<title>Web图片批量上传控件演示页面</title>
<script type="text/javascript" src="ImageUploader/ImageUploader.js" charset="utf-8"></script>
</head>
<body>
<div><a href="asp.net/images.aspx">查看上传的图片</a></div>
<div id="msg"></div>
<script language="javascript" type="text/javascript">
var imgUploader = new ImageUploader();
imgUploader.Config["PostUrl"] = "http://localhost/php/upload.php";

window.onload = function()
{
imgUploader.Init();
}
</script>
</body>
</html>

这个真心牛X~!!~收下鸟。刚接了一个做网站的单子,正好用上。~!

读书人网 >PHP

热点推荐