Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用jqueryajax提交大文件时,服务器站点php上的所有输入字段都变为空_Php_Ajax_Laravel_File Upload - Fatal编程技术网

当使用jqueryajax提交大文件时,服务器站点php上的所有输入字段都变为空

当使用jqueryajax提交大文件时,服务器站点php上的所有输入字段都变为空,php,ajax,laravel,file-upload,Php,Ajax,Laravel,File Upload,我正在尝试使用jQueryAjax和formData将大文件发送到服务器。 如果我发送7个文件,每个文件的大小为1MB,则会收到数据,但如果我尝试一次发送10个文件,则服务器站点上接收的输入字段为空,但输入会正确发送到服务器。下面是我上传文件的代码 //php code public function multipleupload() { $title = $_POST["title"]; $property_id = $_POST["propertyId

我正在尝试使用jQueryAjax和formData将大文件发送到服务器。 如果我发送7个文件,每个文件的大小为1MB,则会收到数据,但如果我尝试一次发送10个文件,则服务器站点上接收的输入字段为空,但输入会正确发送到服务器。下面是我上传文件的代码

//php code
public function multipleupload()
    {
        $title = $_POST["title"];
        $property_id = $_POST["propertyId"];
        $userId = $_POST["userId"];
        $albumId = $_POST["albumId"];
        $profileId = $_POST["profile_id"];

        if($albumId == "") {
            $album = new Album;
            $album->title = $title; 
            $album->property_id = $property_id;
            $album->user_id = $userId;
            $album->profile_id = $profileId;
            $album->save();

            $albumID = $album->id;
            $userId = $album->user_id;
            $folder = str_replace(" ","-",$title. '-' . date("Y-m-d_His"));
            if(!is_dir('uploads/album/'. $folder) || (!is_dir('uploads/album/'. $folder . "/original") && !is_dir('uploads/album/'. $folder . "/thumb"))) {
                mkdir('uploads/album/'. $folder);
                mkdir('uploads/album/'. $folder. "/original");
                mkdir('uploads/album/'. $folder. "/thumb");
            }
        }
        else {
            $album = DB::table("photo_album")->select('*')->where('album_id', '=', $albumId)->orderBy('id','DESC')->first();
            $folder = $album->file_path;

            $album = Album::findOrFail($albumId);
            $album->update(['title' => $title]);

            $albumID = $album->id;
        }
        $fileCount = count($_FILES["finalFiles"]['name']);
        $photos = array();
        for($i=0; $i < $fileCount; $i++) {
        if($_POST["rmImage"] == "" || !in_array($i,explode(",",$_POST["rmImage"]))) {
        $ImgFile = str_replace(" ","-",pathinfo($_FILES["finalFiles"]['name'][$i], PATHINFO_FILENAME))."-".date("Y-m-d_His").".".pathinfo($_FILES["finalFiles"]['name'][$i], PATHINFO_EXTENSION);    
        $target_original_path = 'uploads/album/'. $folder . '/original/' . $ImgFile;
        $target_thumb_path = 'uploads/album/'. $folder . '/thumb/' . $ImgFile;
        if(move_uploaded_file($_FILES['finalFiles']['tmp_name'][$i], $target_original_path))
        {
            $imagine = new Imagine\Gd\Imagine();

            $mode    = Imagine\Image\ImageInterface::THUMBNAIL_INSET;

            $thumb_size    = new Imagine\Image\Box(100, 100);

            $imagine->open($target_original_path)
                ->thumbnail($thumb_size, $mode)
                ->save($target_thumb_path);

            $size    = new Imagine\Image\Box(650, 350);

            $imagine->open($target_original_path)
                ->thumbnail($size, $mode)
                ->save($target_original_path);

                $filename = $_FILES["finalFiles"]["name"][$i];
                //$album = Album::where('user_id','=',$userId)->orderBy('created_at','DESC')->first();
                $photo_details = ['album_id' => $albumID, 
                                  'property_id' => $property_id, 
                                  'file_name' => $filename, 
                                  'created_by' => $userId, 
                                  'updated_by' => $userId, 
                                  'url' => URL::to('/').'/'.$target_original_path, 
                                  'thumb_url' => URL::to('/').'/'.$target_thumb_path, 
                                  'file_path' => $folder];
                array_push($photos, $photo_details);
        }
        else
        {
            echo '{"status":"Failure","response":[],"message":"Failed to upload property image."}';
            $status = "failure";
         }
        }   
      }

      if(count($photos) > 0) {
         $albumPhoto = PhotoAlbum::insert($photos);
      }
}  

//Jquery Code
$("#photoAlbum").click(function() {
      if($("#title").val() == '') {
       $(".error-title").show();
       $(".error-photo").hide();
      }
      else {
        if($("#preview-area ul li").size() == 0) {
            $(".error-title").hide();
            $(".error-photo").show();
        }
        else {
            $("#photoAlbum").attr("disabled", true);
            var form = $('form')[0]; // You need to use standart javascript object here
            var formData = new FormData(form);
            $.ajax({
              url: "api/multipleupload",
              type: "POST",
              data: formData,
              cache: false,
              contentType: false,
              processData: false, 
              success: function(result){
                $state.go('albums',{propertyID:  $scope.propertyId});
                toastr.success('Album Has been Added successfully.');
              }
            });
        }
      }
    });
//php代码
公共函数多路复用()
{
$title=$_POST[“title”];
$property\u id=$\u POST[“propertyId”];
$userId=$\u POST[“userId”];
$albumId=$\u POST[“albumId”];
$profileId=$\u POST[“profile\u id”];
如果($albumId==“”){
$album=新专辑;
$album->title=$title;
$album->property\u id=$property\u id;
$album->user_id=$userId;
$album->profile_id=$profileId;
$album->save();
$albumID=$album->id;
$userId=$album->user\u id;
$folder=str_replace(“,”-“,$title.-”。日期(“Y-m-d_His”);
如果(!is_dir('uploads/album/'.$folder)|(!is_dir('uploads/album/'.$folder./original)&&!is_dir('uploads/album/'.$folder./thumb”)){
mkdir('uploads/album/'.$folder);
mkdir('uploads/album/'.$folder./original');
mkdir('uploads/album/'.$folder./thumb');
}
}
否则{
$album=DB::table(“photo_album”)->select('*')->其中('album_id','=',$albumId)->orderBy('id','DESC')->first();
$folder=$album->file\u路径;
$album=album::findOrFail($albumId);
$album->update(['title'=>$title]);
$albumID=$album->id;
}
$fileCount=计数($_文件[“最终文件”][“名称]);
$photos=array();
对于($i=0;$i<$fileCount;$i++){
如果($_POST[“rmImage”]==“”| |!在_数组($i,explode(“,”,$_POST[“rmImage”])){
$ImgFile=str_replace(“,”-”,pathinfo($_FILES[“finalFiles”]['name'][$i],pathinfo_FILENAME))。“-”.date(“Y-m-d_His”)。”。pathinfo($_FILES[“finalFiles”]['name'][$i],pathinfo扩展名);
$target_original_path='uploads/album/'.$folder.'/original/'.$ImgFile;
$target_thumb_path='uploads/album/'.$folder./thumb/'.$ImgFile;
如果(移动上传的文件($文件['FinalFile']['tmp\U名称][$i],$target\u原始路径))
{
$imagine=new imagine\Gd\imagine();
$mode=Imagine\Image\ImageInterface::缩略图\u插图;
$thumb\u size=new Imagine\Image\Box(100100);
$imagine->open($target\u original\u path)
->缩略图($thumb\u size,$mode)
->保存($target\u thumb\u path);
$size=newimagine\Image\Box(650350);
$imagine->open($target\u original\u path)
->缩略图($size$mode)
->保存($target\u original\u path);
$filename=$_文件[“最终文件”][“名称”][$i];
//$album=album::where('user_id','=',$userId)->orderBy('created_at','DESC')->first();
$photo\u details=['album\u id'=>$album id,
'property\u id'=>$property\u id,
“文件名”=>$filename,
'由'=>$userId'创建'u,
'由'=>$userId'更新'u,
'url'=>url::to('/')./'.$target\u original\u path,
'thumb_url'=>url::to('/')./'.$target_thumb_路径,
“文件路径”=>$folder];
阵列推送($photos,$photo\u details);
}
其他的
{
回显“{”状态“:”失败“,”响应“:[],”消息“:”未能上载属性映像。“}”;
$status=“失败”;
}
}   
}
如果(计数($photos)>0){
$albumPhoto=相册::插入($photos);
}
}  
//Jquery代码
$(“#相册”)。单击(函数(){
if($(“#title”).val()=''){
$(“.error title”).show();
$(“.error photo”).hide();
}
否则{
if($(“#预览区域ul li”).size()=0){
$(“.error title”).hide();
$(“.error photo”).show();
}
否则{
$(“#相册”).attr(“禁用”,真);
var form=$('form')[0];//这里需要使用标准javascript对象
var formData=新formData(表格);
$.ajax({
url:“api/multipleupload”,
类型:“POST”,
数据:formData,
cache:false,
contentType:false,
processData:false,
成功:功能(结果){
$state.go('albums',{propertyID:$scope.propertyID});
toastr.success('已成功添加相册');
}
});
}
}
});

过去,我在使用Jquery ajax和FormData上传文件时遇到过一些问题,服务器端有一些奇怪的输出()

解决我问题的方法是避免使用jquery,并使用
XMLHttpRequest()
采取更普通的方法,如下所示:

function save(action){
    var formElement = document.getElementById("form");
    var formData = new FormData(formElement);
    formData.append('_token', $('meta[name="csrf-token"]').attr('content'));

    var request = new XMLHttpRequest();
    request.open("POST", "{{url('myUrl')}}");
    request.send(formData);

    request.onload = function(oEvent) {
      if (request.status == 200) {
        toastr.success('Yai! Saved successfully!');
      } else {
        toastr.error('Oh oh! Something went really wrong!');
      }
      $( "#form-wrapper" ).toggleClass( "be-loading-active" );
    };
}
在我的控制器中,我可以正常访问请求对象中的文件:

public function store(Request $request)
{
    dd($request->nameOfInput);
}
此外,正如人们在评论中建议的那样,如果您正在处理大型文件,请确保在
php.ini
中相应地配置了php参数


希望这对您有所帮助。

过去,我在使用Jquery ajax和FormData上传文件时遇到过一些问题,服务器端有一些奇怪的输出()

解决我问题的方法是避免使用jquery,并使用
XMLHttpRequest()
采取更普通的方法,如下所示:

function save(action){
    var formElement = document.getElementById("form");
    var formData = new FormData(formElement);
    formData.append('_token', $('meta[name="csrf-token"]').attr('content'));

    var request = new XMLHttpRequest();
    request.open("POST", "{{url('myUrl')}}");
    request.send(formData);

    request.onload = function(oEvent) {
      if (request.status == 200) {
        toastr.success('Yai! Saved successfully!');
      } else {
        toastr.error('Oh oh! Something went really wrong!');
      }
      $( "#form-wrapper" ).toggleClass( "be-loading-active" );
    };
}
在我的控制器中,我可以正常访问请求对象中的文件:

public function store(Request $request)
{
    dd($request->nameOfInput);
}
此外,正如人们在评论中所建议的,如果您正在处理大型文件,请确保您的php参数配置为ac