CC-2473: plupload: Cannot upload a 250Mb+ file

- fixed
- we now use chuck to uploade files
This commit is contained in:
James 2011-07-29 16:45:13 -04:00
parent 2bde3298e4
commit ce0396961d
4 changed files with 41 additions and 3 deletions

View file

@ -315,6 +315,8 @@ class ApiController extends Zend_Controller_Action
$upload_dir = ini_get("upload_tmp_dir");
StoredFile::uploadFile($upload_dir);
$fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : '';
StoredFile::copyFileToStor($upload_dir, $fileName);
}
public function uploadRecordedAction()

View file

@ -7,6 +7,7 @@ class PluploadController extends Zend_Controller_Action
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('upload', 'json')
->addActionContext('copyfile', 'json')
->initContext();
}
@ -29,6 +30,14 @@ class PluploadController extends Zend_Controller_Action
die('{"jsonrpc" : "2.0"}');
}
public function copyfileAction(){
$upload_dir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload";
$filename = $this->_getParam('name');
StoredFile::copyFileToStor($upload_dir, $filename);
die('{"jsonrpc" : "2.0"}');
}
}

View file

@ -795,7 +795,7 @@ class StoredFile {
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
}
$audio_file = $p_targetDir . DIRECTORY_SEPARATOR . $fileName;
/*$audio_file = $p_targetDir . DIRECTORY_SEPARATOR . $fileName;
$md5 = md5_file($audio_file);
$duplicate = StoredFile::RecallByMd5($md5);
@ -816,9 +816,34 @@ class StoredFile {
$audio_stor = $stor . DIRECTORY_SEPARATOR . $fileName;
$r = @copy($audio_file, $audio_stor);
$r = @copy($audio_file, $audio_stor);*/
}
public static function copyFileToStor($p_targetDir, $fileName){
$audio_file = $p_targetDir . DIRECTORY_SEPARATOR . $fileName;
$md5 = md5_file($audio_file);
$duplicate = StoredFile::RecallByMd5($md5);
if ($duplicate) {
if (PEAR::isError($duplicate)) {
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": ' . $duplicate->getMessage() .'}}');
}
if (file_exists($duplicate->getFilePath())) {
$duplicateName = $duplicate->getMetadataValue('MDATA_KEY_TITLE');
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "An identical audioclip named ' . $duplicateName . ' already exists in the storage server."}}');
}
}
$storDir = MusicDir::getStorDir();
$stor = $storDir->getDirectory();
$stor .= "/organize";
$audio_stor = $stor . DIRECTORY_SEPARATOR . $fileName;
$r = @copy($audio_file, $audio_stor);
}
public static function getFileCount()
{

View file

@ -1,10 +1,11 @@
$(document).ready(function() {
var uploader;
$("#plupload_files").pluploadQueue({
uploader = $("#plupload_files").pluploadQueue({
// General settings
runtimes : 'html5,html4',
url : '/Plupload/upload/format/json',
chunk_size: '5mb',
multiple_queues : 'true',
filters : [
{title: "Audio Files", extensions: "ogg,mp3"}
@ -24,6 +25,7 @@ $(document).ready(function() {
$("#plupload_error").find("table").append(row);
}
$.get('/Plupload/copyfile/format/json/name/'+file.name);
});
var uploadProgress = false;