Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP if语句_Php_Html - Fatal编程技术网

使用PHP if语句

使用PHP if语句,php,html,Php,Html,我的网站上有一个功能,用户可以创建相册来更好地组织他们的照片。他们可以上传新照片,也可以从已经上传的照片中进行选择。 在我的PHP中,如果他们上传了任何新的文件,我会用代码检查他们上传的文件。它工作得很好,但我只希望它能在他们上传新照片时工作。现在,即使他们选择了已经上传的旧照片,它也会运行。我使用HTML5的“multiple”属性,这样他们就可以上传多张照片。在我的PHP中,如何编写条件if语句,以便在上传照片时仅运行此代码 foreach ($_FILES['uploads']['name

我的网站上有一个功能,用户可以创建相册来更好地组织他们的照片。他们可以上传新照片,也可以从已经上传的照片中进行选择。 在我的PHP中,如果他们上传了任何新的文件,我会用代码检查他们上传的文件。它工作得很好,但我只希望它能在他们上传新照片时工作。现在,即使他们选择了已经上传的旧照片,它也会运行。我使用HTML5的“multiple”属性,这样他们就可以上传多张照片。在我的PHP中,如何编写条件if语句,以便在上传照片时仅运行此代码

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[]