所以我对此进行了很多搜索,但找不到任何好的答案。 我有一个hrm,在那里我添加用户,每个人都有他们的信息,如姓名,年龄,地址等。 我还添加了几个文件,如:图像,身份证(jpg / pdf),税卡(pdf),协议文件(pdf),还有其他几个。
这些文档中的每一个都有其单独的输入字段,每个文档都将上载到服务器上的不同文件夹中。我得到了它的工作,但我不确定我的方法是否正确:
基本信息(这里有很多输入,所以我不会全部列出):
if(isset($_POST['btnsave'])){
$id = $_POST['w_rid'];
$name = $_POST['w_name'];
$surname = $_POST['w_surname'];
$position = $_POST['w__position'];
在这些信息之后,我上传了文件:
$userID = $_FILES['user_id']['name'];
$id_tmp_dir = $_FILES['user_id']['tmp_name'];
$idSize = $_FILES['user_id']['size'];
$userTaxCard = $_FILES['user_taxcard']['name'];
$taxCard_tmp_dir = $_FILES['user_taxcard']['tmp_name'];
$taxCardSize = $_FILES['user_taxcard']['size'];
$userAgreement = $_FILES['user_agreement']['name'];
$agreement_tmp_dir = $_FILES['user_agreement']['tmp_name'];
$agreementSize = $_FILES['user_agreement']['size'];
$imgFile = $_FILES['user_image']['name'];
$img_tmp_dir = $_FILES['user_image']['tmp_name'];
$imgSize = $_FILES['user_image']['size'];
目前我有18种不同的文件上传输入,名称不同
现在我有了上传文件的部分,对于这18个文件输入中的每一个,我都有这个代码块,我只是重复并替换名称:
if($_FILES['user_id']['error'] == 0) {
$upload_dir_id = 'user_id/';
$idExt = strtolower(pathinfo($userID,PATHINFO_EXTENSION));
$valid_extensions_id = array('pdf'); // valid extensions
$userid = $name . "-id-" . rand(1000,1000000).".".$idExt;
if(in_array($idExt, $valid_extensions_id)){
if($idSize < 5000000) {
move_uploaded_file($id_tmp_dir,$upload_dir_id.$userid);
}
else{
$errMSG = "Sorry, your file is too large.";
}
}
}
您可以想象代码有多大
这是最后一块代码:
// if no error occured, continue ....
if(!isset($errMSG))
{
$stmt = $DB_con->prepare('INSERT INTO Radnici2(id, name, surname, position, userTaxCard, userAgreement, imgFile, userID) VALUES(:urid, :uime, :uprezime, :uroditelj, :usprema, :uzdravlje, :uljekarski, :upradnika)');
$stmt->bindParam(':uid',$id);
$stmt->bindParam(':uname',$name);
$stmt->bindParam(':usurname',$surname);
$stmt->bindParam(':uposition',$position);;
$stmt->bindParam(':utaxc',$usertaxc);
$stmt->bindParam(':uagreement',$useragreement);
$stmt->bindParam(':upic',$userpic);
if($stmt->execute())
{
$successMSG = "Success";
header("refresh:3;index.php"); // redirects image view page after 5 seconds.
}
else
{
$errMSG = "Error....";
}
}
这是上传文件的有效方法吗?它并不觉得我所做的是正确的,或者它可以大大改进。 有没有更好的方法? 谢谢。