Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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
Javascript 上传多个文件:Angular_Javascript_Php_Angular - Fatal编程技术网

Javascript 上传多个文件:Angular

Javascript 上传多个文件:Angular,javascript,php,angular,Javascript,Php,Angular,我试图上传多个文件,但我有一个错误的地方,我还不知道。控制台中没有显示任何内容,但“uploadData”为空,如下所示: const uploadData = new FormData(); uploadData.append('File_1', this.selectedFile_1, this.selectedFile_1.name); uploadData.append('File_2', this.selectedFile_2, this.selectedFile_2.name); u

我试图上传多个文件,但我有一个错误的地方,我还不知道。控制台中没有显示任何内容,但“uploadData”为空,如下所示:

const uploadData = new FormData();
uploadData.append('File_1', this.selectedFile_1, this.selectedFile_1.name);
uploadData.append('File_2', this.selectedFile_2, this.selectedFile_2.name);
uploadData.append('File_3', this.selectedFile_3, this.selectedFile_3.name);
uploadData.append('File_4', this.selectedFile_4, this.selectedFile_4.name);
uploadData.append('File_5', this.selectedFile_5, this.selectedFile_5.name);
uploadData.append('File_6', this.selectedFile_6, this.selectedFile_6.name);
uploadData.append('File_7', this.selectedFile_7, this.selectedFile_7.name);
还具有此功能以检查每个输入的任何更改:

 selectedFile_1: File;
 onFileChanged_1(e) {
    let target = e.target; 
    this.selectedFile_1 = target.files[0];
    console.log(`first file changed: ${this.selectedFile_1}`)
  }
现在,我给PHP发送了很多东西,除了这个,一切都很好。当我尝试发送一个文件时,它可以工作,但是,如果我发送多个文件,“uploadData”不会得到一个值。我也做了控制台日志,我什么也没有得到,完全是空的(这也在后端)

有人能帮我吗

好的,这可能会有帮助,当我这样写它时,它工作了,但只针对一个文件,我似乎只能做1:

  uploadedData: FormData;
  selectedFile: File;

  onFileChanged(e) {
    let target = e.target;
    this.selectedFile = target.files[0];
  }

  eventId: Number = 0;
  upload() {
    const uploadData = new FormData();
    uploadData.append('myFile', this.selectedFile, this.selectedFile.name);
    this.http.post<Response>(environment.apiUrl + "handers/events/imageUpload.php", uploadData).subscribe(
      data => {
        this.eventId = data.id;
        Swal.fire(
          'Téléchargement Terminé!',
          '',
          'success'
        )
      }
    )
  }
uploadedData:FormData;
selectedFile:文件;
onFileChanged(e){
设target=e.target;
this.selectedFile=target.files[0];
}
eventId:Number=0;
上传(){
const uploadData=new FormData();
uploadData.append('myFile',this.selectedFile,this.selectedFile.name);
this.http.post(environment.apiUrl+“handers/events/imageUpload.php”,uploadData)(
数据=>{
this.eventId=data.id;
喷火(
“Téléchargement termine!”,
'',
“成功”
)
}
)
}

我找到了解决这个问题的方法,问题是你不能用Angular在一个API调用中向PHP发送多个文件,换句话说,你必须一个接一个地发送这些文件,这就是问题的解决方案,希望这能帮上忙。

我找到了解决这个问题的方法,问题是你不能用Angular在一个API调用中向PHP发送多个文件,换句话说,你必须一个接一个地发送这些文件,这就是问题的解决方案,希望这有帮助。

这对你有帮助吗。不抱歉,我正在尝试上载多个文件,但不是在同一个输入上,每个文件都在其自己的输入字段中,这就是区别。您有不同的onFileChanged方法吗?是的,像这样onFileChanged_1、onFileChanged_2、onFileChanged_3……我有一些建议。我相信,由于重新呈现页面,file1、file2变量被设置为未定义。请您提供一个服务,并继续在那里添加上载的文件,当您单击上载按钮时,循环文件并附加到表单数据。这对您有帮助吗。不抱歉,我正在尝试上载多个文件,但不是在同一个输入上,每个文件都在其自己的输入字段中,这就是区别。您有不同的onFileChanged方法吗?是的,像这样onFileChanged_1、onFileChanged_2、onFileChanged_3……我有一些建议。我相信,由于重新呈现页面,file1、file2变量被设置为未定义。请你做一个服务,并继续添加上传的文件,当你点击上传按钮,循环文件和附加到表单数据。