这里我正在通过我的php代码(在codigniter中)上传任何文件(没有文件大小限制并且用户可以上传任何文件扩展名)到服务器但是当我尝试上传大小为185MB的文件时所以它给了我错误。
我还将php.ini添加到服务器上的文件夹结构中,该结构来自我的服务器支持。我确实增加了上传大小,并增加了另一个相关属性。我可以上传大小为20MB但无法上传文件大小50mb,100mb等的文件。上传最大文件大小在localhost上工作但不在服务器上工作。
请在下面是我的代码。请帮我修改我的代码
通过ajax上传文件
$.ajax({
url: '<?php echo base_url();?>files>',
type: 'POST',
dataType :'json',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',progress, false);
}
return myXhr;
},
beforeSend:function() {
$("#progressbar").show();
$("#cmdSub").attr("disabled",true);
$("#cmdSub").val("Please Wait");
},
success: function (data) {
if(data.success != ""){
location.href = "<?php echo base_url();?>files/";
}
if(data.error != ""){
$("#f_name").val("");
$("#fnameinfo").html(data.error);
$("#cmdSub").attr("disabled",false);
$("#cmdSub").val("Submit");
}
},
error: function(xhr, textStatus, thrownError) {
alert("Error while uploading");
$("#cmdSub").attr("disabled",false);
$("#cmdSub").val("Submit");
$("#ffileinfo").html("");
},
data: formdata,
// this is the important stuf need to overide the usual post behavior
cache: false,
contentType: false,
processData: false
});
控制器代码
function uploadFile() {
$f_name = $_FILES['f_name']['name'];
$f_type = $_FILES['f_name']['type'];
$f_size = $_FILES['f_name']['size'];
$f_ext = pathinfo($_FILES['f_name']['name'], PATHINFO_EXTENSION);
$filename = pathinfo($_FILES['f_name']['name'], PATHINFO_FILENAME );
$filename = str_replace($arr_chars,"_",$filename);
$configFile = array (
'allowed_types' => '*',
'upload_path' => $file_upload_path,
'file_name' => $filename.'_'.$fid
);
$this->upload->initialize($configFile);
if($this->upload->do_upload('f_name')) {
//insert the record
} else {
$error = $this->upload->display_errors();
}
}
答案 0 :(得分:0)
文件上传大小可能是服务器配置问题:)
在你的php.ini中试试这个:
upload_max_filesize = 10M
post_max_size = 10M
- 编辑(感谢Big Chris)
脚本可能会超时处理此请求。所以你应该把它添加到你的函数
ini_set('max_execution_time', 120);
这告诉php这个文件最多需要2分钟才能运行
希望有所帮助:)