程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> swfupload配置與使用方法

swfupload配置與使用方法

編輯:關於PHP編程

swfupload是一個用來文件上傳的組件,對於大文件我們覺得是很不錯的,下面我來介紹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

這個注釋下面。

修改其中的

 代碼如下 復制代碼

view sourceprint?$upload_name = "filedata";

為:

view sourceprint?$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中

view sourceprint?file_size_limit : "100 MB",

修改為期待的尺寸(最大2G)

修改nginx.conf,/etc/init.d/nginx reload,若不添加下面的設置,則nginx會出現413 Request Entity Too Large錯誤

 代碼如下 復制代碼

view sourceprint?http { 

... 

client_max_body_size 128M 

... 

}

同時需要修改服務器配置 php.ini, /etc/init.d/php-cgi reload

 代碼如下 復制代碼

view sourceprint?upload_max_filesize 100M 

post_max_size 100M 

memory_limit 128M

注意到swfupload並不要求修改max_execution_time和max_input_time的配置。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved