清除PHP页面

时间:2012-01-08 18:26:35

标签: php ajax file-upload content-management-system multifile-uploader

我正在使用名为plupload的异步文件上传工具。我在一个独立的页面上设置了所有设置和工作方式,但我遇到了问题。我正在将我的代码转移到一个内容管理系统,该系统将所有每页PHP存储在一个数据库中 - 我认为它还解析了PHP代码片段,以检查所有内容是否没有错误。

问题是这个。我想回复成功上传的回复。

在独立页面上,我使用die('A response')并在HTML部分之前暂停PHP。在这种情况下,我不能,因为CMS仍将完整地提供页面的其余部分。

我需要将表单提交给自己,因为我正在将一些非javascript内容用于降级表单验证等。

有没有人有一个简单的解决方案?我目前正在测试任何异步响应(在帖子之后,我的意思是)并且在完成上传时称之为'成功',如果你遵循我的意思。我真的不喜欢它。我想知道在任何不成功的情况下强制服务器错误(如果可以的话)。这会是特别糟糕的做法吗?

3 个答案:

答案 0 :(得分:2)

如果您愿意覆盖CMS的index.php文件,这将有效。

  • 将当前的index.php重命名为其他内容。我们会说'cms.php'。您可能想要更改权限,以便只有您的服务器可以从中读取。
  • 创建一个名为'index.php'的新PHP文件。我们在PHP手册中使用了example from the include docs(#6)。这是the (modified) code
    • 注意:缩进变得一团糟,所以我会把它粘贴到它上面。随时编辑

如果您网站任何部分的任何一点都想让它失败,您可以将实际数据粘贴在$GLOBALS['failContent']中,用户将永远不会看到任何CMS生成的输出。


我不确定die这样做会产生什么影响,但我相信它会阻止我们输出任何东西......但我肯定。有谁知道吗?

答案 1 :(得分:2)

将此代码放入php文件

<?php
$uploaddir='../uploads/';
$uploadfile=mysql_prep($uploaddir.basename($_FILES['uploadfile']['name']));
if(move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
 {
  $name=mysql_prep(($_FILES['uploadfile']['name']));
  $type=mysql_prep(($_FILES['uploadfile']['type']));
  $data=($uploadfile);
  $size= intval($_FILES['uploadfile']['size']);
  #echo $data;
  $branch=mysql_prep($_POST['branch']);
  $sem=mysql_prep($_POST['sem']);
  $query="INSERT INTO upload_file (name,type,data,size,created,branch_id,sem_id) VALUES ('{$name}','{$type}','{$data}','{$size}',NOW(),'{$branch}','{$sem}')";
  $result=mysql_query($query);
  if($result){
      echo"<h2>file successfully uploaded<h2>";
      redirect_to(root."afterlogin/upload.php?spload=0112");
  }
  else{
      echo" the file you insert can't be uploaded";
  }

并将其包含在html文件中

 <?php if(isset($_GET['spload'])){
 $upload_process="you have successfully uploaded your file. ";
 $upr=1;   

  }else{

    $upr=0;

 }

?>

答案 2 :(得分:0)

我正在使用受上述MySQL建议启发的技术。

plupload包含一个FileUploaded事件。

我在触发上传之前生成一个随机数,并将其与每个文件一起发布。一旦我完成了在服务器端移动文件(实际上是一个电子邮件附件) - 如果邮件发送成功,我会使用随机数作为名称和“成功”或类似内容编写一个小文本文件。然后,当激活plupload的FileUploaded时,我向一个小的独立PHP文件发出一个新的异步请求,传递相同的随机数,然后在取消链接之前读取该文件。

再次感谢您的帮助。似乎工作得很好。