Javascript 变量的数组值
我有一个表单,用户可以上传多个文件。 我正在尝试从files[]获取文件,并将值作为变量返回。这是我第一次处理图像上传,我几乎被卡住了。非常感谢你的帮助。真诚地 下面是我的文件上传表单元素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
<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];
}