Javascript 变量的数组值

Javascript 变量的数组值,javascript,php,arrays,Javascript,Php,Arrays,我有一个表单,用户可以上传多个文件。 我正在尝试从files[]获取文件,并将值作为变量返回。这是我第一次处理图像上传,我几乎被卡住了。非常感谢你的帮助。真诚地 下面是我的文件上传表单元素 <div class="section"> <label for="file1" class="field-label"> Upload image - <span class="small-text fine-grey"> (ONLY JPG

我有一个表单,用户可以上传多个文件。 我正在尝试从files[]获取文件,并将值作为变量返回。这是我第一次处理图像上传,我几乎被卡住了。非常感谢你的帮助。真诚地

下面是我的文件上传表单元素

 <div class="section">
    <label for="file1" class="field-label"> 
        Upload image - <span class="small-text fine-grey"> (ONLY JPG : PNG : PDF) </span> 
    </label>
    <label class="field prepend-icon file">
        <span class="button btn-primary"> Choose File </span>
        <input type="file" class="gui-file" name="file[]" required id="file1" 
        onChange="document.getElementById('uploader1').value = this.value;">
        <input type="text" class="gui-input" id="uploader1" placeholder="no file selected" readonly>
        <span class="field-icon"><i class="fa fa-upload"></i></span>
    </label>
</div><!-- end  section -->

 <div class="section">
    <label for="file1" class="field-label"> 
        Upload another image - <span class="small-text fine-grey"> (ONLY JPG : PNG : PDF) </span> 
    </label>
    <label class="field prepend-icon file">
        <span class="button btn-primary"> Choose File </span>
        <input type="file" class="gui-file" name="file[]" required id="file2" 
        onChange="document.getElementById('uploader2').value = this.value;">
        <input type="text" class="gui-input" id="uploader2" placeholder="no file selected" readonly>
        <span class="field-icon"><i class="fa fa-upload"></i></span>
    </label>
</div><!-- end  section -->

上传图像-(仅JPG:PNG:PDF)
选择文件
上传另一张图片-(仅JPG:PNG:PDF)
选择文件
到目前为止,我已经创建了以下内容,但我认为它不起作用

在我的表单上启用了以下功能。enctype=“多部分/表单数据” 下面是我发送表单值的process.php的一部分

  // Here is the updated code***
 $file = $_FILES['file']['name'];
 $file_loc = $_FILES['file']['tmp_name'];
 $file_size = $_FILES['file']['size'];
 $file_type = $_FILES['file']['type'];
 $folder="uploads/";

 $filecount = count($file);
  for ($f=0; $f < $filecount; $f++){
  $rand =  rand(1000,100000)."-";
   if (move_uploaded_file($file_loc[$f],$folder.$rand.$file[$f]) ){
    //I need maximum 2 files uploaded. I guess name should be something else instead of file[0,1] such as finalname[0];
   $img_url=$file[0];
   $img_urla=$file[1];
   }
//这是更新后的代码***
$file=$_文件['file']['name'];
$file\u loc=$\u FILES['file']['tmp\u name'];
$file\u size=$\u FILES['file']['size'];
$file\u type=$\u FILES['file']['type'];
$folder=“uploads/”;
$filecount=count($file);
对于($f=0;$f<$filecount;$f++){
$rand=rand(1000100000)。“-”;
如果(移动上传的文件($file\u loc[$f],$folder.$rand.$file[$f])){
//我最多需要上传2个文件。我想名称应该是其他名称,而不是文件[0,1],例如finalname[0];
$img_url=$file[0];
$img_urla=$file[1];
}

您的
进程.php
代码存在问题

move_uploaded_file($file_loc,$folder.$file)
在这里,您将传递
$file\u loc
$file
,这两个文件都在您处理的案例数组中。 还有那条线

$file = rand(1000,100000)."-".$_FILES['file']['name'];
不正确,因为
$\u FILES['file']['name']
是一个不能附加到字符串的数组

您必须循环文件并将其全部移动到该位置:

$file =$_FILES['file']['name'];
$filecount = count($file);
for ($f=0; $f < $filecount; $f++){
    $rand =  rand(1000,100000)."-";
    if (move_uploaded_file($file_loc[$f],$folder.$rand.$file[$f]) ){
        //file uploaded
    }else{
        //error in file upload
    }
}

您好,Bas van,我尝试了您编辑的代码,但是我没有得到任何数据,也没有将文件上载到文件夹。您的php ini设置正确吗?可能您尝试上载太多或太大的文件,请检查
上载最大文件大小
上传最大文件大小
。我可以上载单个大文件。我正在尝试您的更正获取并查看是否有效。我可能遗漏了一些内容。在我的表单上,如果我使用单个输入字段与两个输入字段,这并不重要,对吗?考虑name=“file[]”在两个输入字段上。不,这不重要,也许你可以用新代码更新你的问题,然后我可以看一看。你要存储文件的文件夹有写权限吗?
 // Here is the updated code***
 $file = $_FILES['file']['name'];
 $file_loc = $_FILES['file']['tmp_name'];
 $file_size = $_FILES['file']['size'];
 $file_type = $_FILES['file']['type'];
 $folder="uploads/";
 $img_urls = array(); //<-- create an array of image urls

 $filecount = count($file);
 // so far so good
 for ($f=0; $f < $filecount; $f++){
   $rand =  rand(1000,100000)."-";
   if (move_uploaded_file($file_loc[$f],$folder.$rand.$file[$f]) ){
       $img_urls[] = $folder.$rand.$file[$f]; //add the file to the array.
   }
 }
 if (count($img_urls) > 1){ //check if there are at least 2 files
     echo "image 1: ".$img_urls[0]." and image 2: ". $img_urls[1];
 }