用PHP上传多个文件 [英] Multiple File Upload with PHP

查看:61
本文介绍了用PHP上传多个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要上传多个文件,它与简单文件几乎相似文件上传,但我们需要对html标记和PHP代码.需要在HTML标记上添加多个属性.Firefox,Chrome,Safari和IE 9+等主要网络浏览器均支持此功能属性.我将向您展示如何使用PHP上传多个文件和基本的HTML表单,但是缺少一些表单(不是多个文件上传)

i want to upload multiple file upload.It is almost similar like simple file upload but we need to do some modification with html markup and php code. multiple attribute is needed to add on the html markup. Major web browsers like Firefox, Chrome, Safari and IE 9+ support this attribute. I am going to show you how to upload multiple file with PHP and basic HTML form but something missing it (multiple file is not upload)

我尝试了以下代码

HTML代码

<html>
<head>

<?php

if (isset($message)) {
foreach ($message as $msg) {
printf("<p class=’status’>%s</p></ br>\n", $msg);
}
}
# success message
if($count !=0){
printf("<p class=’status’>%d files added successfully!</p>\n", $count);
}
?>
<title>Multiple File upload with PHP</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="files" multiple="multiple" accept="image/*" />
<input type="submit" value="Upload!" />
</form>
</body>
</html>

PHP脚本

<?php
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 1024*5000; //100 kb
$path = "uploads/"; // Upload directory
$count = 0;

if(isset($_POST) and $_SERVER[‘REQUEST_METHOD’] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES[‘files’][‘name’] as $f => $name) {
if ($_FILES[‘files’][‘error’][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES[‘files’][‘error’][$f] == 0) {
if ($_FILES[‘files’][‘size’][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
$count++; // Number of successfully uploaded file
}
}
}
}

?>

推荐答案

替换输入文件名,例如 files [] ,而不是 files ,请参见以下表单示例:

Replace input file name like files[] not like files see following form example:

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
    <input type="submit" value="Upload!" />
</form>

这篇关于用PHP上传多个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆