时间:2021-07-01 10:21:17 帮助过:2人阅读
swfupload是一个flash插件它可以结合php来快速实现图片文件无刷新上传,同时还可以批量上传图片,下面我来给大家介绍PHP swfupload图片文件上传实例代码有需要了解的中参考。
效果图
?
index.php文件
SWFUpload Demos - SWFObject Demo SWFUpload v2.2.0
SWFObject Demo
?
核心处理程序php代码
if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $file_info = pathinfo($upload_file['name']); $file_type = $file_info['extension']; $save = 'image/' . md5(uniqid($_FILES["Filedata"]['name'])) . '.' . $file_info['extension']; $name = $_FILES['Filedata']['tmp_name']; if (!move_uploaded_file($name, $save)) { exit; } //将数组的输出存起来以供查看 $fileName = 'test.txt'; $postData = var_export($file_info, true); $file = fopen('' . $fileName, "w"); fwrite($file,$postData); fclose($file);}
?
swfUpload注意事项
swfuplaod在上传时,会新开一个进程,和原来的进程不一致,要解决这个问题,需要指定session_id,然后在登录页面判断,如果有 post过来的session_id,那么就用函数session_id( $_POST['PHP_SESSIONID'])指定一下。
上传页的JS里面,可以获取当前的SESSION_ID的。
例如上传页的JS中:
post_params: {"PHPSESSID": ""},
?
在验证的判断页中:
if (isset($_POST["PHPSESSID"])) { session_id($_POST["PHPSESSID"]); }
?
(这一段是网上的注释:在带有Session验证的网站后台中SWFUpload无法正常工作,这是因为SWFUpload在上传时相当于重新开辟了一个 新的Session 进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原有程序的SessionID,根据它来“找回”其应有的Session。)
DEMO下载地址:http://dl.iteye.com/topics/download/b6351ce4-b3e3-30a3-b8af-eda7b98a1c79
?
?
?
?
?
?
?
?
?
?
?