同时在php中上载两个图像
我有两张图片要上传到服务器上。如果在html中设置了这两个文件,则应执行第一个查询,如果选择了image1且image2不是应执行的第二个查询,如果未选择image1且选择了inage2,则应执行第三个查询,如果image1和image2中均未选择图像,则应执行查询4 请注意,我还有三个文本框,无论是否选择image1或image2,它们都将被更新 我的问题是 当我没有在image1和image2中选择任何文件时,第一个代码通过插入image1和image2的emoty值来执行,这是nto的意思。同时在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的意思
是否有一种更干净、更有效的方法来减少代码重复
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...
}