Topic: Weird Filenames upon upload
I have been successful in porting over plupload into Codeigniter (thanks to this forum), but when a user uploads a file, the filename comes out like this: _1, _2, _3, etc.
What could be causing this error?
Pages 1
I have been successful in porting over plupload into Codeigniter (thanks to this forum), but when a user uploads a file, the filename comes out like this: _1, _2, _3, etc.
What could be causing this error?
bump
There is a bug in the upload.php file where it checks uniqueness and if chuking is enabled it will produce a new file for each chunk. Will try to release a fix for this a.s.a.p.
Sounds good... in the meantime is there anything I can do to try to fix this?
So I am back to square one with trying to get this to work with CodeIgniter. When I tried reading the error message coming back from the uploader (after having to dig through the src js files) I binded the error to my plupload queue and got the following message:
Error #2038
I can't find any documentation anywhere stating what this means.
Here is my js file
buildUrl:function(l,k){var m="";d.each(k,function(o,n){m+=(m?"/":"")+encodeURIComponent(n)+"/"+encodeURIComponent(o)});if(m){l+=(l.indexOf("?")>0?"/":"/")+m}return l}
I changed it so that this script would "work" with CodeIgniter.
Here is my codeigniter controller
function do_upload($fileName) {
// Settings
$targetDir = $_SERVER['DOCUMENT_ROOT'] . "/uploads/";
$cleanupTargetDir = false; // Remove old files
$maxFileAge = 60 * 60; // Temp file age in seconds
// 5 minutes execution time
@set_time_limit(5 * 60);
// usleep(5000);
// Get parameters
$chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0;
$chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0;
// Clean the fileName for security reasons
// $fileName = preg_replace('/[^\w\._]+/', '', $fileName);
// Create target dir
if (!file_exists($targetDir))
@mkdir($targetDir);
// Remove old temp files
if (is_dir($targetDir) && ($dir = opendir($targetDir))) {
while (($file = readdir($dir)) !== false) {
$filePath = $targetDir . DIRECTORY_SEPARATOR . $file;
// Remove temp files if they are older than the max age
if (preg_match('/\\.tmp$/', $file) && (filemtime($filePath) < time() - $maxFileAge))
@unlink($filePath);
}
closedir($dir);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
// Look for the content type header
if (isset($_SERVER["HTTP_CONTENT_TYPE"]))
$contentType = $_SERVER["HTTP_CONTENT_TYPE"];
if (isset($_SERVER["CONTENT_TYPE"]))
$contentType = $_SERVER["CONTENT_TYPE"];
if (strpos($contentType, "multipart") !== false) {
if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
// Open temp file
$out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen($_FILES['file']['tmp_name'], "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
fclose($out);
unlink($_FILES['file']['tmp_name']);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
} else {
// Open temp file
$out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen("php://input", "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
fclose($out);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
}
// Return JSON-RPC response
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
}
I really am trying to get this script done, but am in need of some help. Is there anything you can think of that would cause this to not work?
Try the latest GitHub version. Could be some cross domain issue or similar. The error you are getting is Flash related and it's a IO error so I would guess it can't do the request to the server somehow. The current GitHub version has crossdomain loading and submitting support.
I shall have to try that... yeah I noticed that the HTML5 version of this was working just fine... the Flash version was giving me fits... and since my client uses IE, well HTML5 is out of the question ![]()
Pages 1
You are not logged in. Please login or register.