我正在尝试将Uploadify v2.1.4与Codeigniter v2.1一起使用。我知道闪存没有将会话数据发送到控制器的问题,控制器在codeigniter中返回,返回http 302错误而不是上传脚本。
我已经看到了各种解决方案,但它们都适用于旧版本的框架,特别是codeigniter。有没有人找到最新的集成uploadify与CI的解决方案?我可以通过将上传脚本放在CI目录之外来使脚本工作,但我想利用CI函数,因此对我来说这不是一个好的解决方案。
确认我收到的错误消息是“HTTP 302”...即禁止uploadify脚本访问/ a / reports / uploadify
这是jquery
$(document).ready(function() {
$('#file_upload').uploadify({
'uploader' : '/swf/uploadify.swf',
'script' : '/a/reports/uploadify',
'cancelImg' : '/img/cancel.png',
'folder' : '/uploads/originals',
'auto' : true,
'fileExt' : '*.jpg;*.pdf;*.doc',
'fileDesc' : 'jpg, pdf or doc',
'hideButton': false,
'removeCompleted':false
});
任何我的控制器
class Reports extends MY_Controller
{
public function uploadify()
{
log_message('info','uploadify method being called');
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
log_message('info', 'File Upload: Temp file created '.$tempFile);
log_message('info', 'File Upload: Target path for upload '.$targetPath);
log_message('info', 'File Upload: Target file for upload '.$targetFile);
$fileTypes = str_replace('*.','',$_REQUEST['fileext']);
$fileTypes = str_replace(';','|',$fileTypes);
$typesArray = split('\|',$fileTypes);
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$typesArray))
{
move_uploaded_file($tempFile,$targetFile);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
}
else
{
log_message('error', 'File Upload: Invalid file type uploaded ['.$fileParts['extension'].']');
echo 'Invalid file type.';
}
}
}
}
答案 0 :(得分:2)
最后,我找到了这个解决方案。不是最好的,但仍然是一个很好的解决方法。