同时在php中上载两个图像

同时在php中上载两个图像,php,forms,file-upload,Php,Forms,File Upload,我有两张图片要上传到服务器上。如果在html中设置了这两个文件,则应执行第一个查询,如果选择了image1且image2不是应执行的第二个查询,如果未选择image1且选择了inage2,则应执行第三个查询,如果image1和image2中均未选择图像,则应执行查询4 请注意,我还有三个文本框,无论是否选择image1或image2,它们都将被更新 我的问题是 当我没有在image1和image2中选择任何文件时,第一个代码通过插入image1和image2的emoty值来执行,这是nto的意思

我有两张图片要上传到服务器上。如果在html中设置了这两个文件,则应执行第一个查询,如果选择了image1且image2不是应执行的第二个查询,如果未选择image1且选择了inage2,则应执行第三个查询,如果image1和image2中均未选择图像,则应执行查询4

请注意,我还有三个文本框,无论是否选择image1或image2,它们都将被更新

我的问题是

当我没有在image1和image2中选择任何文件时,第一个代码通过插入image1和image2的emoty值来执行,这是nto的意思。

是否有一种更干净、更有效的方法来减少代码重复

if (isset($_FILES['newsthumb']) && isset($_FILES['newsmain'])) {

  $title            = mysql_real_escape_string(trim($_POST['title']));
  $body             = mysql_real_escape_string(trim($_POST['body']));
  $mainimage_title  = mysql_real_escape_string(trim($_POST['mainimage_title']));
  $thumbimage = $_FILES['newsthumb'];
  $mainimage  = $_FILES['newsmain'];

$unique = time();

$thumbname  = strtolower($thumbimage['name']); 
$mainmane   = strtolower($mainimage['name']);

 $thumbname  = preg_replace("/[^A-Z0-9._-]/i", "_", $thumbname);
 $mainmane   = preg_replace("/[^A-Z0-9._-]/i", "_", $mainmane);

 $thumbname = mysql_real_escape_string($thumbname);
 $mainmane  = mysql_real_escape_string($mainmane);

 $uploaddir = "images/newsimage/";

 $thumbsuccess = move_uploaded_file($thumbimage["tmp_name"], $uploaddir.$thumbname);
 $mainsuccess  = move_uploaded_file($mainimage["tmp_name"], $uploaddir.$mainmane);

 $newsarticle = "UPDATE news 
              SET title = '$title', 
                  body = '$body', 
                  mainimage_title = '$mainimage_title' , 
                  thumbnail = '$thumbname', 
                  mainimage = '$mainmane', 
                  editdate = NOW()
                  WHERE id = '$article_id'"; 
              mysql_query($newsarticle) or die (mysql_error());
            }




也许可以通过创建一个函数来获取参数中的文件和他的资料。这将有助于避免重复

用于检查选择了哪个文件或不选择哪个文件:

if ($_FILES["file"]["error"] > 0)
更多解释:

function uploadASingleFile($file){ 
// Do your stuff here for the upload (moving the file, sql request etc.) 
}
然后,检查文件是否被选中(使用[“error”]),并调用函数

if($_FILES["file1"]["error"] == 0){
uploadASingleFile($_FILES["file1"]); // Obviously, handle errors...
}

if($_FILES["file2"]["error"] == 0){
uploadASingleFile($_FILES["file2"]); // Obviously, handle errors...
}

代码的重复性和清晰性更低。我回答你的问题了吗?

有人能帮我吗。!!!!!!
if ($_FILES["file"]["error"] > 0)
function uploadASingleFile($file){ 
// Do your stuff here for the upload (moving the file, sql request etc.) 
}
if($_FILES["file1"]["error"] == 0){
uploadASingleFile($_FILES["file1"]); // Obviously, handle errors...
}

if($_FILES["file2"]["error"] == 0){
uploadASingleFile($_FILES["file2"]); // Obviously, handle errors...
}