IT Knowledge Base

~ Freedom is the right of all sentient beings ~

發佈日期:

如何使用jQuery File Upload‧將一堆檔案一次性上傳(upload)到網站內

之前一直尋找方法,不使用FTP的方式把檔案上傳到伺服器上。之前使用Java,以為是唯一的方法,直到今天找到這一個JQuery模組。

01. 在AQUANTUM Demo Site下載jQuery File Upload Demo。

02. 解壓檔案至伺服器資料夾內。今次使用的是XAMPP伺服器。

03. 為方便瀏覽,可把資料夾名稱(blueimp-jQuery-File-Upload-fa25106)更改為簡單的名稱(jQuery-File-Upload)。

04. 打開瀏覽器(http://localhost/jQuery-File-Upload/example/),會出現以下畫面。

05. 上傳檔案,測試程式是否正常。

06. 上傳檔案後,可在xampp\htdocs\jQuery-File-Upload\example\files資料夾內,找到上傳的檔案。

07. 如果只是上傳檔案到特定位置,來到這裡已經完成所有的工作。但今次的目的,是需要把不同的檔案,存放到不同的資料夾內。

08. 首先,假設其他不同的資料夾位置,與jQuery-File-Upload資料夾在同一層位置(xampp\htdocs\jQuery-File-Upload\example\other_folder)。

09. 將xampp\htdocs\jQuery-File-Upload\example資料夾下index.html檔案,更改為index.php檔案。

10. 編輯xampp\htdocs\jQuery-File-Upload\example資料夾index.php檔案。

在檔案最頭位置,新增以下內容:

<?php
if (isset($_POST["folder_name"]) && $_POST["folder_name"]!="") {
$folder=$_POST["folder_name"];
if (!file_exists(str_replace(basename(dirname(__FILE__)), 'other_folder', dirname(__FILE__)).'/'.$folder)) {
mkdir(str_replace(basename(dirname(__FILE__)), 'other_folder', dirname(__FILE__)).'/'.$folder, 0777);
}
$fp = fopen('folder_name.log','w');
fputs ($fp, $folder);
fclose ($fp);
echo '<p>Absoulte path: '.str_replace(basename(dirname(__FILE__)), 'other_folder', dirname(__FILE__)).'/'.$folder.'/</p>';
echo '<p>Relative apth: '.str_replace(basename(dirname(__FILE__)), 'other_folder', dirname($_SERVER['PHP_SELF'])).'/'.$folder.'/</p>';
?>
在以下位置:
<button type="button" class="delete">Delete files</button>
新增:
<a class="change" href="reset.php">Change folder</a>
在檔案最尾位置,新增以下內容:
<?php
} else {
echo '<html>';
echo '<head>';
echo '<title>Folder</title>';
echo '<style type="text/css">';
echo 'input {';
echo 'font-family: Arial;';
echo '}';
echo '.content_text {';
echo 'font-size: 10pt;';
echo 'color: #333;';
echo '}';
echo '</style>';
echo '</head>';
echo '<body>';
echo '<form name="titleform" method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<p>Folder name: <input class="content_text" id="folder_name" name="folder_name" type="text" MAXLENGTH=50 size="30" /></p>';
echo '<input type="submit" value="Submit" />';
echo '<input type="reset" value="Reset" />';
echo '</body>';
echo '</html>';
}
?>

11. 編輯xampp\htdocs\jQuery-File-Upload\example資料夾style.css檔案。

新增以下內容:
.change {
float: right;
padding: 10px 0 0 0;
}

11. 編輯xampp\htdocs\jQuery-File-Upload\example資料夾upload.php檔案。

在以下位置:
function __construct($options=null) {
新增:
$fp = fopen('folder_name.log','r');
if ($fp) {
$folder = fgets($fp,4096);
}
fclose ($fp);
將:
'upload_dir' => dirname(__FILE__).'/files/',
'upload_url' => dirname($_SERVER['PHP_SELF']).'/files/',
更改為:
'upload_dir' => str_replace(basename(dirname(__FILE__)), 'other_folder', dirname(__FILE__)).'/'.$folder.'/',
'upload_url' => str_replace(basename(dirname(__FILE__)), 'other_folder', dirname($_SERVER['PHP_SELF'])).'/'.$folder.'/',
為避免上傳惡意程式,將:
'accept_file_types' => '/.+$/i',
更改為只限制上傳圖檔:
'accept_file_types' => '/(jpg)|(gif)|(png)$/i',
因應不需要存放縮圖圖檔,將:
'thumbnail' => array(
'upload_dir' => dirname(__FILE__).'/thumbnails/',
'upload_url' => dirname($_SERVER['PHP_SELF']).'/thumbnails/',
'max_width' => 80,
'max_height' => 80
)
更改為:
/*
'thumbnail' => array(
'upload_dir' => dirname(__FILE__).'/thumbnails/',
'upload_url' => dirname($_SERVER['PHP_SELF']).'/thumbnails/',
'max_width' => 80,
'max_height' => 80
)
*/

12. 在xampp\htdocs\jQuery-File-Upload\example資料夾下,新增reset.php檔案。

<?php
unset($_POST["updateverifycode"]);
unset($_POST["folder_name"]);
header("location: index.php");
?>

13. 打開瀏覽器(http://localhost/jQuery-File-Upload/example/index.php),會要求輸入資料夾名稱。

14. 上傳檔案,再到相關資料夾,檢查檔案是否已成功上傳。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *