Uploadify 是一個基于 jQuery 的文件上傳插件,它支持多文件上傳、斷點續傳等功能。要實現斷點續傳,你需要確保服務器端支持這些功能。以下是實現斷點續傳的基本步驟:
uploader
參數指向你的服務器端上傳腳本。例如:$('#file_upload').uploadify({
'swf' : '/path/to/uploadify.swf',
'uploader' : '/path/to/your/upload_script.php'
});
<?php
$targetPath = 'uploads/';
$targetFile = $targetPath . basename($_FILES['file_data']['name']);
$chunkSize = 1024 * 1024; // 1MB
$chunks = isset($_POST['chunks']) ? intval($_POST['chunks']) : 1;
$currentChunk = isset($_POST['currentChunk']) ? intval($_POST['currentChunk']) : 0;
// 創建目標文件夾(如果不存在)
if (!file_exists($targetPath)) {
mkdir($targetPath, 0777, true);
}
// 檢查文件是否已經上傳完整
if ($currentChunk == $chunks) {
if (move_uploaded_file($_FILES['file_data']['tmp_name'], $targetFile)) {
echo 'File uploaded successfully.';
} else {
echo 'Failed to move uploaded file.';
}
} else {
// 保存文件塊
$fileHandle = fopen($targetFile, 'ab');
if ($fileHandle) {
fwrite($fileHandle, file_get_contents('php://input'));
fclose($fileHandle);
echo 'Chunk ' . $currentChunk . ' uploaded successfully.';
} else {
echo 'Failed to open file for writing.';
}
}
?>
在這個示例中,我們首先確定目標文件路徑和文件名。然后,我們檢查是否已經上傳了所有文件塊。如果是,我們將文件移動到目標路徑。如果不是,我們將接收到的文件塊追加到目標文件中。
注意:這個示例僅用于演示目的,實際應用中可能需要添加更多的錯誤處理和安全性措施。