首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传文件并转到另一个PHP页面

问上传文件并转到另一个PHP页面
EN

Stack Overflow用户
提问于 2012-03-30 12:29:49
回答 4查看 5.2K关注 0票数 1

所以我有4页。它们非常简单。

index.php (作品)

代码语言:javascript
复制
<html>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br />
<input type="submit" value="Now upload it!">
</form>
</html>

upload.php (作品)

代码语言:javascript
复制
<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];

  echo 'Are you sure you want to continue saving this file';
  echo '<a href="yes.php">Yes, continue</a>
  <br />
  <br />
  <a href="no.php">No thanks</a>'
  }
?>

no.php (作品)

代码语言:javascript
复制
<?php
echo 'Thanks anyway';
?>

yes.php (错误)

代码语言:javascript
复制
<?php
    if ($_FILES["file"]["error"] > 0)
      {
      echo "Error: " . $_FILES["file"]["error"] . "<br />";
      }
    else
      {
      echo "Upload: " . $_FILES["file"]["name"] . "<br />";
      echo "Type: " . $_FILES["file"]["type"] . "<br />";
      echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
      echo "Stored in: " . $_FILES["file"]["tmp_name"];

      echo 'We will now save this document:';
      //Save document code
      }
    ?>

yes的输出:

代码语言:javascript
复制
Notice: Undefined index: file in /home/public_html/test/yes.php on line 2 Invalid file

We will now save this document:?

如你所见,我从来不保存它。但我想将其保存在yes.php页面中。是否仍可以检索已上载原始文档?提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-30 12:42:41

上传的文件仅适用于单个PHP实例/请求周期。

上传的文件存储在temp目录中。如果脚本执行结束时它们仍然存在,PHP将假定您不需要它们,将其删除。

如果你想持久化这个文件,你必须在上传文件的同一个请求中把它移到其他地方。

票数 2
EN

Stack Overflow用户

发布于 2012-03-30 12:41:30

您正在尝试将文件从表单传递到不同的页面,而不是预期的页面。post值将不再有效。我建议将会话中的文件保存到一个临时文件夹中,并从那里通过$_GET[]或upload.php变量将其传递给yes或no页面。

在no.php页面上,您将获取该文件并使用

代码语言:javascript
复制
unlink($somefile);

这将从您的服务器中删除该文件。

在yes.php页面上,我会移动或复制文件。如果您复制该文件,我将使用unlink来删除临时文件。

票数 1
EN

Stack Overflow用户

发布于 2012-03-30 12:41:36

您可以尝试使用move_uploaded_file()临时保存文件,然后使用

代码语言:javascript
复制
<a href="yes.php?filename=tmp_file_path">Yes, continue</a>
<a href="no.php?filename=tmp_file_path">No thanks</a>

然后使用以下命令检索yes.php中的文件名

代码语言:javascript
复制
$tmpFile = $_GET["filename"];

代码语言:javascript
复制
unlink($_GET["filename"]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9937036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档