如何组合文件重命名和上传php程序?

时间:2014-08-18 10:53:43

标签: php

我是编程新手,我需要php的帮助。

我可以使用这两个php程序上传文件。(单独使用它们很好) 我无法弄清楚如何将它们组合成一个, 这样一个新程序可以验证,重命名和POST这两张图片。

我还想要一个将要检索的程序 来自客户登录会话的用户名和电子邮件地址 并验证数据进入表单。

我非常感谢你的帮助。谢谢


这些是我正在使用的PHP

 //This php validates and posts file to a folder "file_upload"

 <?php
 $allowedExts = array("gif", "jpeg", "jpg", "png");
 $temp = explode(".", $_FILES["file"]["name"]);
 $extension = end($temp);

 if ((($_FILES["file"]["type"] == "image/gif")
 || ($_FILES["file"]["type"] == "image/jpeg")
 || ($_FILES["file"]["type"] == "image/jpg")
 || ($_FILES["file"]["type"] == "image/pjpeg")
 || ($_FILES["file"]["type"] == "image/x-png")
 || ($_FILES["file"]["type"] == "image/png"))
 && ($_FILES["file"]["size"] < 100000)
 && in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
//echo "Upload: " . $_FILES["file"]["name"] . "<br>";
//echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
//echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"])) {
  echo $_FILES["file"]["name"] . " already exists. ";
} else {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "file_upload/" . $_FILES["file"]["name"]);
  //echo "Stored in: " . "file_upload/" . $_FILES["file"]["name"];
 }
}
 } else {
echo "Invalid file";
}
?> 


//These Php works fine together to rename and post files to separate folders 
//when the same user name is manually entered in the form


 <?php

 $destDir = 'rename_fotos/';   //can be any directory on your server, 

 $renamedFilename = $_POST['numbera']."-Foto1"; 
 //keep the same file extension if uploaded file has it
 $renamedFilename .= ($pos = strrpos($_FILES['file']['name'], '.')) === false ? '' :    substr($_FILES['file']['name'], $pos);

 move_uploaded_file($_FILES["file"]["tmp_name"], $destDir . DIRECTORY_SEPARATOR .    $renamedFilename);

 echo "Foto File Uploaded <b>(code need upgrade!)</b>";
 ?> 

 <?php

 $destDir = 'rename_fotos2/';   //can be any directory on your server,` 

  $renamedFilename = $_POST['number']."-Foto2"; 
  //keep the same file extension if uploaded file has it
  $renamedFilename .= ($pos = strrpos($_FILES['file2']['name'], '.')) === false ? '' :      substr($_FILES['file2']['name'], $pos);

  move_uploaded_file($_FILES["file2"]["tmp_name"], $destDir . DIRECTORY_SEPARATOR .      $renamedFilename);

  echo "Foto File Uploaded <b>(code need upgrade!)</b>";
  ?> 

1 个答案:

答案 0 :(得分:0)

尝试从减去逻辑开始。也许看着你可以更好地工作。你不想做什么?它就是这样......

if (is_valid_upload_image($_FILES['file']) && is_valid_number($_POST['number'])) {
    $moved_file = move_to_definetely_local($_FILES['file']);
    rename_file_with_postname($moved_file, $POST['number']);
}

必须创建所有functions / methods,但现在,凭借头脑中的逻辑,您可以更有效地处理每一项。