上传后回应成功

时间:2014-03-10 20:34:42

标签: php html

我想回应"成功"在同一页面上,如果表格上传正确,表格是打开的,但我是php的新手,所以不知道它是如何完成的?

的index.php

<form action="upload" method="POST">
<input name="field1" placeholder="First name" type="text" />
<input type="submit" name="submit" value="Submit">

upload.php的

    $content = "".$_POST["field1"];
$fp = fopen("upload/test.txt","wb");
fwrite($fp,$content);
fclose($fp);

我还需要它重定向回同一页面index.php

5 个答案:

答案 0 :(得分:1)

使用常规表单帖子时,您无法执行此操作。当发布表单时,用户导航离开当前页面并由服务器给出新页面。他们所看到的那个不再存在,所以你不能注入信息。

如果您想按照描述执行任务,则需要使用基于AJAX的文件上传器。

请参阅:https://stackoverflow.com/search?q=php+jquery+ajax+upload

答案 1 :(得分:0)

$content = "".$_POST["field1"];
$fp = fopen("upload/test.txt","wb");
if (fwrite($fp,$content))
  {
  echo "Successful upload!";
  } else {
  echo "Not successful!";
  };
fclose($fp);

答案 2 :(得分:0)

你需要使用一些javascript和php来获得你想要的东西。 ajax-file-upload-with-php-and-jquery

我没有尝试过,但乍一看看起来是一个很好的起点。

答案 3 :(得分:0)

如果您需要在同一页面上回显并且您不想使用ajax,则有两种可能的解决方案。

a)在上传脚本中使用GET参数,并在index.php上对此进行处理(As @Brad也在评论时说)

upload.php的

$content = "".$_POST["field1"];
$fp = fopen("upload/test.txt","wb");
fwrite($fp,$content);
fclose($fp);
header('Location: /index.php?m=success');

的index.php

//Check for message parameter
if (isset($_GET['m']{0}) && $_GET['m'] === 'success')
    echo 'Form uploaded successfully';

//Display the upload form
echo '<form action="upload" method="POST">' .
     '<input name="field1" placeholder="First name" type="text" />' .
     '<input type="submit" name="submit" value="Submit">';

b)在同一个脚本中 的index.php

//Check if form is submitted
if (isset($_POST['field1']))
{
    $content = "".$_POST["field1"];
    $fp = fopen("upload/test.txt","wb");
    fwrite($fp,$content);
    fclose($fp);

    //Do anything else
}

//Display form. Use index.php as the action, instead of upload
echo '<form action="/index.php" method="POST">' .
     '<input name="field1" placeholder="First name" type="text" />' .
     '<input type="submit" name="submit" value="Submit">';

评论后更新

使用fopen函数打开文件时,可以定义2个参数。第一个参数是文件名,第二个参数是标志。

你需要'a'(追加)标志,而不是'w'(写):

  • 'a'仅供写作;将文件指针放在。的末尾 文件。如果该文件不存在,请尝试创建它。
  • 'w'仅供写作;将文件指针放在开头 的文件并将文件截断为零长度。如果文件有 不存在,试图创造它。

看看here

答案 4 :(得分:0)

Try the following code
if (! move_uploaded_file ( $_FILES ['attachment'] ['tmp_name'], UPLOAD_DIR  )) {
    //handle if file not  uploaded

         header("Location:index.php?m=fail");
}else{

      header("Location:index.php?m=success");

}