我可以毫無問題地上傳小文件。當我嘗試使用150MB文件時,它意外停止。以下是我的HTML文件:使用PHP和Ajax進行文件上傳
<html>
<body>
<form method="post" enctype="multipart/form-data" class="form-horizontal" id="form_upload">
<div class="control-group">
<label class="control-label muted">IMG</label>
<div class="controls">
<input type="file" id="img" name="img" />
</div>
</div>
<div class="control-group">
<label class="control-label muted">MD5</label>
<div class="controls">
<input type="file" id="md5" name="md5" />
</div>
</div>
</form>
<div class="progress">
<div class="bar"></div>
<div class="percent"></div>
</div>
</body>
</html>
而以下是我的Ajax處理程序:我使用jQuery表單提交插件。
uploadFirmware:function(){
var bar = $('.bar');
var percent = $('.percent');
self = this;
var options = {
beforeSend: function() {
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
complete: function(data) {
console.log(data);
self.showStatusMsg(1,"<b>Firmware Upload: </b> File Upload successfully");
},
url: '/cav_firmware/api',
iframe: false
};
$("#form_upload").ajaxSubmit(options);
return false;
}
最後這是我的PHP代碼。我使用CodeIgniter,但我沒有在我的代碼中使用它,只是一個經典的PHP腳本。
public function api_post(){
$filea = $_FILES['img'];
$fileb = $_FILES['md5'];
if(move_uploaded_file($filea['tmp_name'], '/home/sreeni/upload/'.$filea['name']) && move_uploaded_file($fileb['tmp_name'], '/home/sreeni/upload/'.$fileb['name'])){
echo "Success fully upload files";
} else {
echo "File upload failed.";
}
}
這一切都很好。我的問題只是上傳一個150 MB的文件。我收到以下錯誤,當我嘗試上載我的MD5和IMG文件:
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: img</p>
<p>Filename: controllers/cav_firmware.php</p>
<p>Line Number: 30</p>
</div>
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: md5</p>
<p>Filename: controllers/cav_firmware.php</p>
<p>Line Number: 31</p>
</div>File upload failed.
我/etc/php5/apache2/php.ini
改變了我的php.ini
到最大尺寸,200 MB(內存限制)。
我在這裏做錯了什麼?我需要指定我的文件是MD5和IMG(固件映像文件)嗎?任何幫助?
您需要在php.ini中設置upload_max_filesize和post_max_size的值。上傳文件的最大允許大小。 upload_max_filesize = 200M ;必須大於或等於upload_max_filesize post_max_size = 200M – 2013-03-16 07:33:45
好。 – 2013-03-16 07:34:44
@SRquery,請閱讀問題...他已經做了 – Amir 2013-03-16 07:35:55