swfupload简单使用
swfupload對于大文件上傳等比較好用,下面以classic form demo為例,簡單說明下用法
下載地址:http://code.google.com/p/swfupload/downloads/list
其中 SWFUpload_v250_beta_3_samples.zip 為實例代碼,解壓后重命名為swfupload,保存到本地主文件夾(nginx+php環境)下,便可以通過
http://localhost/swfupload/demos/ 訪問
其中兩個文件夾,demos 為客戶端的實例,samples 提供了各語言的文件保存代碼。
切換到 http://localhost/swfupload/demos/formsdemo/ 即普通表單模式
在/demos/formsdemo/下新建文件夾 uploads
將 /smaples/php/upload.php 中的代碼拷貝到 /demos/formsdemo/upload.php 開頭,即
// The Demos don't save files這個注釋下面。
修改其中的
$upload_name = "filedata";為:
$upload_name = "resume_file";?(與/demos/formsdemo/index.php中的表單元素名稱一致)
此時,可以使用表單正常上傳文件,上傳的文件保存在/demos/formsdemo/uploads/目錄下
數據庫處理部分,應修改下面的代碼:
if (isset($_FILES["resume_file"]) && is_uploaded_file($_FILES["resume_file"]["tmp_name"]) && $_FILES["resume_file"]["error"] == 0) {echo rand(1000000, 9999999); // Create a pretend file id, this might have come from a database. }這段代碼是原來demo中的upload,其作用時返回一個已經上傳的文件的id并賦給表單的hidFileID標簽(注意到,這個標簽是一個hidden元素)
原demo是隨機產生的一個數,在這要修改為數據庫插入操作得到的一個數據庫表的id值。即下面的做法:
去掉對$_FILES的if判斷(這在上面的move_uploaded_file之后is_uploaded_file判斷為false);進行數據庫插入操作;直接echo得到的id(數字型)。
對于大文件上傳,需要首先修改表單部分的,即
/demos/formsdemo/index.php中
file_size_limit : "100 MB",修改為期待的尺寸(最大2G)
修改nginx.conf,/etc/init.d/nginx reload,若不添加下面的設置,則nginx會出現413 Request Entity Too Large錯誤
http { ... client_max_body_size 128M ... }同時需要修改服務器配置 php.ini, /etc/init.d/php-cgi reload
upload_max_filesize 100M post_max_size 100M memory_limit 128M注意到swfupload并不要求修改max_execution_time和max_input_time的配置。
轉載于:https://www.cnblogs.com/bloodmage/archive/2011/05/17/2048986.html
總結
以上是生活随笔為你收集整理的swfupload简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 密码编码学之AES及其工作模式详解
- 下一篇: clickhouse 查询优化_查询提升