2013-05-01 57 views
3

嗨我有以下保存为upload.php。在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> 

上传工作正常。 问题是当我启动页面时,我看到错误消息。 (不能上传屏幕截图来显示它们)。

为了避免它们,我试着检查表单是否设置在发布请求中,如下所示: if(isset($ _ POST []))。

但是,当我有上述的if块时,即使选择并提交文件,它内部的代码也不会被执行。

我该如何解决这个问题。

问题2:

有人可以请点我基于jQuery的文件上传的例子吗?由于页面上还有其他表单域,我必须异步上传文件。

+1

你不必上传截图来显示错误。您可以复制并粘贴您获得的错误/警告。 – 2013-05-01 12:02:00

回答

0

你应该给name属性您提交元素改成这样

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

,然后检查这样

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

如果他们注意到,只是忘记他们或设置error_reporting(0) – 2013-05-01 12:14:00

+0

现在它给了我这个错误: 注意:未定义的偏移量:1在upload.php第9行 注意:未定义偏移量:1在upload.php第11行 注意:未定义的偏移量:1在upload.php在线13 – user2339221 2013-05-01 12:14:06

+0

哦,是的,他们注意到..感谢它似乎已经工作... – user2339221 2013-05-01 12:14:47

0

答1: 你可以检查后变量以及与文件对象如

if(isset($_FILES)) 

或者对于使用POST,您必须指定nam Ë标记您的提交按钮

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

答2:与asynchrously您可以使用jQuery提交了装载机文件上传你可以检查以下live demo

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