得到了这段代码:
if ($_FILES["file1"]["error"] == 0) {
move_uploaded_file($_FILES["file1"]["tmp_name"], "path/".$_FILES["file1"]["name"]);
}
我想将其重复用于上传更多文件。用一些参数思考功能,但似乎我无法正确获得变量。
好的修理如下:
function upload($file) {
$allowedExts = array("pdf, jpg, gif, png");
$extension = end(explode(".", $_FILES[$file]["name"]));
if (in_array($extension, $allowedExts)) && ($_FILES[$file]["error"] == 0) {
move_uploaded_file($_FILES[$file]["tmp_name"], "img/new/".$_FILES[$file]["name"]);
}
}
通过以下方式致电:
upload("file1");
不确定$_FILES
循环...
答案 0 :(得分:1)
您可以遍历$ _FILES数组并为每个文件执行代码,如下所示:
foreach($_FILES as $file)
{
if ($file["error"] == 0) {
move_uploaded_file($file["tmp_name"], "path/".$file["name"]);
}
}
答案 1 :(得分:0)
你可以这样做
function upload_file($file, $upload_path)
{
if($file["error"] == 0){
$moved = move_uploaded_file($file["tmp_name"], $upload_path.$file["name"]);
if($moved){
return true;
}
}
return false;
}
简单但适合您的需求。
答案 2 :(得分:0)
这有效:
<?php
if(isset($_FILES['file']['tmp_name']))
{
$num_files = count($_FILES['file']['tmp_name']);
for($i=0; $i < $num_files;$i++)
{
if(!is_uploaded_file($_FILES['file']['tmp_name'][$i]))
{
$messages[] = 'No file uploaded';
}
else
{
if(move_uploaded_file(($_FILES['file']['tmp_name'][$i],$upload_dir.'/'.$_FILES['file']['name'][$i]))
{
$messages[] = $_FILES['file']['name'][$i].' uploaded';
}
else
{
$messages[] = 'Uploading '.$_FILES['file']['name'][$i].' Failed';
}
}
}
}
?>
注意:最好使用exif_imagetype(),getimagesize()和类似方法验证文件..除了$_FILES['image']['tmp_name']
和$_FILES['image']['error']
之外的其他所有值都不应该值得信赖。它需要从浏览器发送的任何内容,并且很容易被伪造。