Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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文件上载(如果留空)_Php_File Upload - Fatal编程技术网

PHP文件上载(如果留空)

PHP文件上载(如果留空),php,file-upload,Php,File Upload,我的文件上传有点问题,它可以正常工作,但我要更新我的数据,我想更改除图像之外的所有内容,然后点击提交,我收到无效图像消息,我没有更新图像,因此文件输入文本框中没有文件,有没有办法绕过这个问题 if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){ if ($_FILES["image"]["error"] > 0){

我的文件上传有点问题,它可以正常工作,但我要更新我的数据,我想更改除图像之外的所有内容,然后点击提交,我收到无效图像消息,我没有更新图像,因此文件输入文本框中没有文件,有没有办法绕过这个问题

if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){
            if ($_FILES["image"]["error"] > 0){
                echo $_FILES["image"]["error"];
            }else{
                move_uploaded_file($_FILES["image"]["tmp_name"],
                "../upload/CV_1_" . date("Ymd") . $_FILES["image"]["name"]);                                                                    
                $class->update($id, $text, $image);
                echo "<div style='padding-left:50px'><strong>Updated!</strong></div>";
            }
        }else{
            echo "<div style='padding-left:50px'><strong>Invalid Image!</strong></div>";
        }
if($_文件[“图像”][“类型”]=“图像/jpeg”)| |($_文件[“图像”][“类型”]=“图像/pjpeg”)){
如果($_文件[“图像”][“错误”]>0){
echo$_文件[“图像”][“错误”];
}否则{
移动上传的文件($文件[“图像”][“tmp文件名”],
“./上传/CV_1_.”日期(“Ymd”).$\u文件[“图像”][“名称”]);
$class->update($id,$text,$image);
echo“已更新!”;
}
}否则{
回显“无效图像!”;
}
上面的代码做的是获取文件,查看它是否是图像,如果有任何错误,显示它们,然后将文件移动到适当的文件夹并更新我的数据库

这是表格

<form action="CV.php?action=updatesubmit" method="post" enctype="multipart/form-data">
<input type="hidden" value="<?php echo $array['id']; ?>" name="id" />
<p>
<label for="text" style="vertical-align:top;">Text</label>
<textarea name="text" id="text" cols="70" rows="20"><?php echo $array['text']; ?></textarea>
</p>

<p>
<label for="image">Image</label>
<input type="file" name="image" id="image" value="<?php echo $array['image']; ?>" />
</p>

<p>
<input type="submit" name="submit" id="submit" value="Update" />
</p>

</form>

形象
只需将
if(isset($\u FILES['image'))
放在整个块的周围。如果没有上传图像,文件条目将不存在。

只需在整个块周围放置
If(设置($\u FILES['image'))
。如果没有上传图像,则文件条目将不存在。

只有上传图像时才会提交

<?php
if ($_FILES["image"]["tmp_name"] && $_FILES["file"]["error"] < 0){
    if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){
                if ($_FILES["image"]["error"] > 0){
                    echo $_FILES["image"]["error"];
                }else{
                    move_uploaded_file($_FILES["image"]["tmp_name"],
                    "../upload/CV_1_" . date("Ymd") . $_FILES["image"]["name"]);                                                                    
                    $class->update($id, $text, $image);
                    echo "<div style='padding-left:50px'><strong>Updated!</strong></div>";
                }
            }else{
                echo "<div style='padding-left:50px'><strong>Invalid Image!</strong></div>";
            }
}
?>

只有在上传图像时才会提交

<?php
if ($_FILES["image"]["tmp_name"] && $_FILES["file"]["error"] < 0){
    if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){
                if ($_FILES["image"]["error"] > 0){
                    echo $_FILES["image"]["error"];
                }else{
                    move_uploaded_file($_FILES["image"]["tmp_name"],
                    "../upload/CV_1_" . date("Ymd") . $_FILES["image"]["name"]);                                                                    
                    $class->update($id, $text, $image);
                    echo "<div style='padding-left:50px'><strong>Updated!</strong></div>";
                }
            }else{
                echo "<div style='padding-left:50px'><strong>Invalid Image!</strong></div>";
            }
}
?>

在对上载数据执行任何其他操作之前,您需要检查实际上载:

if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
   ... got an upload ...
}

在对上载数据执行任何其他操作之前,您需要检查实际上载:

if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
   ... got an upload ...
}

坏主意。部分上传仍将使用tmp_名称。检查
['error']
,它将告诉您上传的真实状态。这不是个好主意。部分上传仍将使用tmp_名称。选中
['error']
,它将告诉您上传的真实状态。False。无论是否上载了文件,
['image']
条目仍将存在。您必须检查
['error']
值。“未上载文件”将是错误代码4/上载错误文件。这将是什么样子的MarcBFalse。无论是否上载了文件,
['image']
条目仍将存在。您必须检查
['error']
值。“未上传文件”将是错误代码4/上传错误文件。MarcBIm仍然收到“无效图像”消息的样子是什么?我将编辑我的问题,以便您可以看到我做了什么
var\u dump($\u FILES)
以查看出现了什么。你的脚本还存在许多其他问题,其中最重要的一个问题是信任用户在上传文件之前不要简单地执行
ren nastyvirus.exe cutekittens.jpg
。我仍然收到消息“无效图像”,我将编辑我的问题,这样你就可以看到我做了什么
var\u dump($\u文件)
来查看出现了什么。您的脚本还存在许多其他问题,其中最重要的问题是相信用户在上传文件之前不会简单地执行
ren nastyvirus.exe cutekittens.jpg