在PHP文件上载期间检查发布属性

时间:2013-05-01 11:54:57

标签: php

您好我将以下内容保存为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请求中设置如下: 如果(isset($ _ POST []))。

但是当我拥有上面的if块时,即使我选择并提交文件,其中的代码也不会被执行。

我怎样才能解决这个问题。

问题2:

有人可以指点我基于jquery的文件上传示例吗?我必须异步上传文件,因为页面上还有其他表单字段。

2 个答案:

答案 0 :(得分:0)

您应该为您的提交元素指定name属性,将其更改为

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

然后像这样检查

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

答案 1 :(得分:0)

答案1: 你可以检查post变量以及像

这样的文件对象
if(isset($_FILES)) 

或使用POST时,您必须为提交按钮分配名称标签

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

答案2:对于异步上传的文件,您可以使用jquery文件上载程序,您可以在下面查看live demo

它非常易于使用和定制,因为我们需要。