上传 PHP 文件时检查帖子属性

3

您好,我有以下内容保存为upload.php。

<html>
<head>
</head>
<body>
    <?php
        for($file_count = 0; $file_count <= count($_FILES['files']['tmp_name']); $file_count++){
            echo '111111';
            if( $_FILES['files']['error'][$file_count] == 0){
                echo '2222222222';
                $target_dir = "uploads/".time().$_FILES['files']['name'][$file_count];
                echo '333333333333';
                move_uploaded_file($_FILES['files']['tmp_name'][$file_count], $target_dir);
                echo '4444444444444';
            }
        }
    ?>
    <div>
        <form method="post" name="upload_form" enctype="multipart/form-data"
            action="">
            <input type="file" name="files[]" enctype="form/multipart"> <input
                type="submit" id="photo_upload" value="Upload Photo...">
        </form>
        <div id="contents">fggfgfg</div>

    </div>
</body>
</html>

上传功能正常。问题是当我启动页面时,会看到错误消息(无法上传截图以展示)。
为了避免错误,我尝试检查是否在post请求中设置了表单,如下所示:if(isset($_POST[]))。
但是当我有以上if块时,即使我选择并提交文件,其中的代码也不会执行。
我该如何解决这个问题?
问题2:
请问有人可以向我指出基于jquery的文件上传示例吗?由于页面上还有其他表单字段可用,我必须异步上传文件。

1
您不必上传截图来展示错误。您可以复制并粘贴所得到的错误/警告信息。 - Software Guy
2个回答

0

你应该给你的提交元素添加name属性,将其更改为:

<input type="submit" id="photo_upload" name="Submit" value="Upload Photo...">

然后像这样检查

if(isset($_POST['Submit']))

如果它们是通知,只需忽略它们或设置error_reporting(0)。 - chandresh_cool
现在它给了我这个错误: 注意:upload.php的第9行中未定义偏移量:1 注意:upload.php的第11行中未定义偏移量:1 注意:upload.php的第13行中未定义偏移量:1 - user2339221
哦,是的,他们已经注意到了。谢谢,看起来它已经起作用了... - user2339221

0

答案1: 您可以检查POST变量以及文件对象,例如:

if(isset($_FILES)) 

或者如果您要使用POST,您必须为提交按钮分配名称标签

例如

<input type="submit" id="photo_upload" name="Submit" value="Upload Photo...">

答案2: 如果要进行异步文件上传,可以使用Jquery文件上传器,您可以在下面检查 在线演示

非常容易使用和自定义,根据我们的需要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接