首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用php和纯ajax上载大型文件

无法使用php和纯ajax上载大型文件
EN

Stack Overflow用户
提问于 2018-07-15 04:40:49
回答 1查看 604关注 0票数 0

我正试图在我的php服务器上上传大约200 my的大文件,我已经将我的php.ini文件配置为:-

代码语言:javascript
复制
 upload_max_filesize = 9000M

我使用了纯ajax :-

代码语言:javascript
复制
function _(el){
   return document.getElementById(el);
}
function uploadFile(){
   var file = _("file1").files[0];
   var formdata = new FormData();
   formdata.append("file1", file);
   var ajax = new XMLHttpRequest();
   ajax.addEventListener("load", completeHandler, false);
   ajax.addEventListener("error", errorHandler, false);
   ajax.addEventListener("abort", abortHandler, false)
   ajax.open("POST", "index.php");
   ajax.send(formdata);
 }
 function completeHandler(event){
     _("status").innerHTML = event.target.responseText;
     _("progressBar").value = 0;
}
function errorHandler(event){
    _("status").innerHTML = "Upload Failed";
}
function abortHandler(event){
   _("status").innerHTML = "Upload Aborted";
} 

我的Php代码:-

代码语言:javascript
复制
<?php
  $fileName = $_FILES["file1"]["name"]; e
  $fileTmpLoc = $_FILES["file1"]["tmp_name"]; 
  $fileType = $_FILES["file1"]["type"]; 
  $fileSize = $_FILES["file1"]["size"]; 
  $fileErrorMsg = $_FILES["file1"]["error"]; 
  if (!$fileTmpLoc) { 
    echo "ERROR: Please browse for a file before clicking the upload button.";
   exit();
 }
 if(move_uploaded_file($fileTmpLoc, "uploads/$fileName")){
    echo "$fileName upload is complete";
 } else {
    echo "move_uploaded_file function failed";
 }
?>

问题:当我上传文件较少或等于7MB时,我的文件将被成功上传,但是当我试图上传大文件时,我会出错

错误:-

代码语言:javascript
复制
 Notice: Undefined index: file1 in C:\wamp\www\test\index.php on line 2
 Notice: Undefined index: file1 in C:\wamp\www\test\index.php on line 3
 Notice: Undefined index: file1 in C:\wamp\www\test\index.php on line 4
 Notice: Undefined index: file1 in C:\wamp\www\test\index.php on line 5
 Notice: Undefined index: file1 in C:\wamp\www\test\index.php on line 6

ERROR: Please browse for a file before clicking the upload button.
Uploaded 34209942 bytes of 34209942

我为何要面对这个问题呢?我该如何解决这个问题?如何使用ajax上传高达200 How的文件?

请不要推荐我使用JQUERY或任何其他外部LIBS或框架

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-15 04:59:35

尝试在post_max_size中编辑php.ini指令。可能是您的服务器不允许超过7Mb的后请求,并且由于这一点,$_FILES["file1"]变量不存在。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51345325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档