我正在使用uplodify将文件上传到我的服务器。
Google Chrome中没有任何问题。但是当我尝试使用Firefox上传文件时,我收到HTTP错误302并且文件没有上传。
这是我的剧本
<?php $timestamp = time();?>
$('#file_upload').uploadify({
'formData' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5($timestamp);?>',
'session' : '<?php echo $session->currentSessionID(); ?>',
'upload_path': 'ticketing_center/',
'allowed_extentions': 'jpg,jpeg,gif,PNG,JPG,png,JPEG,pdf,jpeg,zip,rar,doc,docx,csv,xls,xlsx,txt,csv,xml'
},
'auto' : true,
'removeCompleted': true,
'swf' : '../../includes/uploadify.swf',
'onError' : function(event, queueID, fileObj, errorObj) { alert(errorObj.type + ' ' + errorObj.info ); },
'uploader' : '../../includes/uploadify.php',
'fileSizeLimit' : '20MB',
'fileTypeExts' : '*.gif; *.jpg; *.JPG; *.png; *.PNG; *.JPEG; *.pdf; *.jpeg; *.zip; *.rar; *.doc; *.docx; *.csv; *.xls; *.xlsx; *.txt; *.csv; *.xml;',
'onUploadSuccess' : function(file, data, response) {
if(response === true){
$('#attached_files').append('<input type="hidden" class="uploadedFiles" name="attachments[]" value="' + $.trim(data) + '" />');
$('#queue_final').append('<div style="display: block;" class="removeFile" id="' + $.trim(data) + '">(x) ' + file.name + '</div>');
} else {
alert('Invalid File Type');
}
$('.removeFile').click( function(){
var file_name = $(this).attr('id');
$( "#dialog-confirm" ).dialog( "open" ).data('file_name', file_name);;
});
}
});
我在发布此问题之前已做过研究,但我找到的解决方案都没有解决我的问题。
这是我到目前为止所尝试的内容
我尝试将会话值添加到脚本'session' : '<?php echo $session->currentSessionID(); ?>'
然后在我的uploadify.php代码中我做了
if (array_key_exists('session', $_REQUEST))
session_id($_REQUEST['session']);
我尝试将header( " HTTP/1.0 200 OK" );
添加到我的PHP脚本顶部,但效果不佳。
我尝试添加onError
函数来显示任何错误,但是没有显示任何错误。
我不确定还有什么可能导致这个?请注意,它在Chrome上运行时没有任何问题。
以下是尝试上传后错误的屏幕截图
我使用的是Firefox 32.0.3。 我的Apache在Windows Server 2008 R2中运行我不确定这是否会产生影响。
答案 0 :(得分:0)
Flash不会传递您现有的PHP会话信息,因此如果您收到302错误,您的应用程序可能会将登录URL返回给Flash播放器。要解决此问题,您可以在scriptData中包含会话信息,并在应用程序中手动管理它。