使用PHP if语句
我的网站上有一个功能,用户可以创建相册来更好地组织他们的照片。他们可以上传新照片,也可以从已经上传的照片中进行选择。 在我的PHP中,如果他们上传了任何新的文件,我会用代码检查他们上传的文件。它工作得很好,但我只希望它能在他们上传新照片时工作。现在,即使他们选择了已经上传的旧照片,它也会运行。我使用HTML5的“multiple”属性,这样他们就可以上传多张照片。在我的PHP中,如何编写条件if语句,以便在上传照片时仅运行此代码使用PHP if语句,php,html,Php,Html,我的网站上有一个功能,用户可以创建相册来更好地组织他们的照片。他们可以上传新照片,也可以从已经上传的照片中进行选择。 在我的PHP中,如果他们上传了任何新的文件,我会用代码检查他们上传的文件。它工作得很好,但我只希望它能在他们上传新照片时工作。现在,即使他们选择了已经上传的旧照片,它也会运行。我使用HTML5的“multiple”属性,这样他们就可以上传多张照片。在我的PHP中,如何编写条件if语句,以便在上传照片时仅运行此代码 foreach ($_FILES['uploads']['name
foreach ($_FILES['uploads']['name'] as $key => $file) {
$time= time();
$target= UPLOADPATH . $time . $file;
move_uploaded_file($_FILES['uploads']['tmp_name'][$key], $target);
}
我试过使用:
if ($_FILES['uploads']['size'] != 0)
if ($_FILES != 0)
if ($_FILES['upload']['name'] !=0)
但是,到目前为止还没有成功。我能做什么?我做错了什么
谢谢
更新
最后,我将变量设置为$\u FILES数组中第一个元素的值
像这样:
$file_test= $_FILES['uploads']['size']['0'];
然后我在测试条件下使用它:
($file_test != 0) {
// run the code;
}
谢谢大家的帮助
if(!empty($_FILES)){
// you've got files?!?!
}
幸运的是,我不太明白你的问题
幸运的是,我猜你没有真正理解你的问题。我猜你将已经上传的照片存储在任何地方,然后你可以使用
getimagesize()
函数的组合来检查上传的文件是否是图像。然后使用MD5_file()
函数将上载文件的MD5哈希值与存储的文件进行比较。如果它们存储在数据库中,那么直接将每个文件的MD5存储在一个字段中可能会提高性能,这样您就可以轻松地在数据库中查询现有的MD5哈希
希望这能有所帮助。我想你可以将已经上传的照片存储在任何地方,然后你可以使用
getimagesize()
函数的组合来检查上传的文件是否是图像。然后使用MD5_file()
函数将上载文件的MD5哈希值与存储的文件进行比较。如果它们存储在数据库中,那么直接将每个文件的MD5存储在一个字段中可能会提高性能,这样您就可以轻松地在数据库中查询现有的MD5哈希
希望这有帮助。首先,您必须使用此功能重新排列$\u文件数组
function rearrange( $arr ){
foreach($arr as $key => $items){
foreach($items as $i => $val){
$array[$i][$key] = $val;
}
}
return $array;
}
$files = rearrange($_FILES['uploads']);
//Then do the foreach loop upload
if(!empty($files))
{
foreach ($files as $file) {
// Check the file size inside the foreach loop
if($file['size'] > 0)
{
$time= time();
$target= UPLOADPATH . $time . $file['name'];
move_uploaded_file($file['tmp_name'], $target);
}
}
}
首先,您必须使用此函数重新排列$\u文件数组
function rearrange( $arr ){
foreach($arr as $key => $items){
foreach($items as $i => $val){
$array[$i][$key] = $val;
}
}
return $array;
}
$files = rearrange($_FILES['uploads']);
//Then do the foreach loop upload
if(!empty($files))
{
foreach ($files as $file) {
// Check the file size inside the foreach loop
if($file['size'] > 0)
{
$time= time();
$target= UPLOADPATH . $time . $file['name'];
move_uploaded_file($file['tmp_name'], $target);
}
}
}
if(!empty($\u FILES))
应该可以做到这一点。empty()
对文件不起作用。enctype
在帖子中包含它,不管它是否有字节。@AlienWebguy那么我能做什么?var\u dump($\u文件['uploads']['size'])
@user1759682只是澄清一下,是否要将已发送的文件与已上载的文件进行比较,以查看所提供的文件是否不同?如果(!empty($\u files))
应该可以解决此问题。empty()
对文件无效。enctype
在帖子中包含它,不管它是否有字节。@AlienWebguy那么我能做什么?var\u dump($\u文件['uploads']['size'])代码>@user1759682只是澄清一下,是否要将已发送的文件与已上载的文件进行比较,以查看提供的文件是否不同?@AlienWebguy如果未上载任何文件,$\u文件为空数组。我不明白这个问题可能…@AlienWebguy如果没有上传文件,$\u文件是一个空数组。我可能不明白这个问题……输入标记的name属性必须是uploads[]输入标记的name属性必须是uploads[]