效果图
ps://harde.org/blog/wp-content/uploads/2010/04/swfupload01.jpg" />
index.php文件
代码如下 | 复制代码 |
<!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>SWFUpload Demos - SWFObject Demo</title> <link href="../css/default.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="../swfupload/swfupload.js"></script> <script type="text/javascript" src="js/swfupload.swfobject.js"></script> <script type="text/javascript" src="js/swfupload.queue.js"></script> <script type="text/javascript" src="js/fileprogress.js"></script> <script type="text/javascript" src="js/handlers.js"></script> <script type="text/javascript"> var swfu; SWFUpload.onload = function () { // Button Settings // The event handler functions are defined in handlers.js swfu = new SWFUpload(settings); </script> <div id="content"> <h2>SWFObject Demo</h2> |
核心处理程序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": "<?php echo session_id(); ?>"}, |
在验证的判断页中:
代码如下 | 复制代码 |
if (isset($_POST["PHPSESSID"])) { session_id($_POST["PHPSESSID"]); } |
(这一段是网上的注释:在带有Session验证的网站后台中SWFUpload无法正常工作,这是因为SWFUpload在上传时相当于重新开辟了一个新的Session 进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原有程序的SessionID,根据它来“找回”其应有的Session。)
完整实例下载地址:http://file.111cn.net/download/2013/05/14/swfupload.zip