Php 不管If语句如何运行语句
即使没有上传图像,也会执行“unlink()”方法,这是为什么?我如何修复它Php 不管If语句如何运行语句,php,file-upload,if-statement,Php,File Upload,If Statement,即使没有上传图像,也会执行“unlink()”方法,这是为什么?我如何修复它 If (isset($_FILES["image"]["name"])) { move_uploaded_file($_FILES["imageUp"]["tmp_name"], "C:/xampp/htdocs/" . $_FILES["image"]["name"]); //if (file_exists($delete)) { unlink($delete);
If (isset($_FILES["image"]["name"])) {
move_uploaded_file($_FILES["imageUp"]["tmp_name"],
"C:/xampp/htdocs/" . $_FILES["image"]["name"]);
//if (file_exists($delete)) {
unlink($delete);
}
else {
$img = $data['row']->image_name;
}
//}
将始终设置,即使您是否上载文件isset
检查是否设置了该对象。所以它总是真的
因此,您需要更改代码:
if (isset($_FILES["image"]["name"]) && !empty($_FILES["image"]["name"])) {
move_uploaded_file($_FILES["imageUp"]["tmp_name"],
"C:/xampp/htdocs/" . $_FILES["image"]["name"]);
//if (file_exists($delete)) {
unlink($delete);
} else {
$img = $data['row']->image_name;
}
请试试这个。希望这有帮助:)根据返回的TRUE
如果一切正常,FALSE
如果出现问题
正如您所说,图像没有移动,因为move\u上传的\u文件返回FALSE
您可以证明将代码更改为:
var_dump(move_uploaded_file($_FILES["imageUp"]["tmp_name"],
"C:/xampp/htdocs/" . $_FILES["image"]["name"]));
看看什么东西回来了
move\u上传的\u文件
在以下情况下将返回FALSE:
upload\u max\u filesize
post\u max\u size
检查并纠正所有这些点,它应该会工作。执行
取消链接()
的真正原因是您禁用了if条件
如果(文件存在($delete))
使用/
以下是代码,您可能需要编写:
if(isset($_文件[“图像”][“名称”])和&is_上传的_文件($_文件[“图像”][“tmp_名称”])){
移动上传的文件($文件[“图像”][“tmp文件名”],
“C:/xampp/htdocs/”$_文件[“图像”][“名称”]);
如果(文件_存在($delete)){
取消链接(删除);
}否则{
$img=$data['row']->image\u name;
}
}
并确保$delete
已保存!想象一下,如果$delete
等于“C:\users\your name\some private file
”。
如果您需要更多帮助,请为我们提供更多有关此代码段的代码。删除的值从何而来?这意味着设置了文件[“图像”][“名称”]?什么是删除??你还没有解释那件事。$delete包含什么???$delete包含一个目录和一个图像的名称
$delete
不是目标文件C:/xampp/htdocs/“$\u文件[“图像”][“名称”]
。我说得对吗?这很有效,有趣的是我的原始代码是if($\u文件[“图像”][“名称”!=”)我也被否决了!我不知道为什么,我写了一个像你一样的有效回复!让我们投票给萨巴里
var_dump(move_uploaded_file($_FILES["imageUp"]["tmp_name"],
"C:/xampp/htdocs/" . $_FILES["image"]["name"]));