所以我现在已经在这件事上工作了几个小时而且我已经疲惫不堪了。当我尝试更新我的联系信息时,我选择了一个图片文件,它将数字1上传到我的数据库,当我没有选择图片时,我已成功使数据库保留原始图片文件。
有人可以帮我解决这个问题吗?
if (!empty($_FILES["kon_up_path"]["name"]))
{
$kon_up_path = move_uploaded_file($_FILES["kon_up_path"]["tmp_name"],"C:/xampp/htdocs/hansenservice/img/img/site/profil_pics/" . $_FILES["kon_up_path"]["name"]);
}
else
{
$kon_up_path = $kontakt_row['cont_img'];
}
答案 0 :(得分:2)
这是你的问题:
$kon_up_path = move_uploaded_file(...);
move_uploaded_file()
成功时返回TRUE,失败时返回FALSE。它不会返回路径。如果您想要文件的路径,请使用您传递的值作为move_uploaded_file()
的第二个参数。
Bonus gotcha:您需要验证提供的文件名是否可接受。您提供的代码不会向您显示它是否具有适当的扩展名,不包含任何无效字符,并且尚未存在。如果你已经在这个片段之外做了这个,那很好;如果没有,您需要,以免用户上传名为../../../../index.php
的文件(例如)并吹走您的网站。考虑自动生成文件名,而不是让用户完全指定它。
答案 1 :(得分:0)
if(is_uploaded_file($_FILES['kon_up_path']['tmp_name'])) {
//code here
}
答案 2 :(得分:0)
我认为首先print_r($ _ FILES)错误部分包含非零值,所以如果发生这种情况每次都会执行,那么你必须
if($_FILES["kon_up_path"]["name"]['error'] == 0 ){
your code
}
答案 3 :(得分:0)
$kon_up_path = move_uploaded_file($_FILES["kon_up_path"]["tmp_name"],"C:/xampp/htdocs/hansenservice/img/img/site/profil_pics/" . $_FILES["kon_up_path"]["name"]);
move_uploaded_file()
此函数返回false / ture
;
你可以这样做:
if(move_uploaded_file($_FILES["kon_up_path"]["tmp_name"],"C:/xampp/htdocs/hansenservice/img/img/site/profil_pics/" . $_FILES["kon_up_path"]["name"])){
$kon_up_path = C:/xampp/htdocs/hansenservice/img/img/site/profil_pics/" . $_FILES["kon_up_path"]["name"];
}
答案 4 :(得分:-1)
尝试
if (count($_FILES) >= 1)
{
$kon_up_path = move_uploaded_file($_FILES["kon_up_path"]["tmp_name"],"C:/xampp/htdocs/hansenservice/img/img/site/profil_pics/" . $_FILES["kon_up_path"]["name"]);
}
else
{
$kon_up_path = $kontakt_row['cont_img'];
}
问候