gpt4 book ai didi

php - 如何在 PHP session 中存储照片上传?

转载 作者:可可西里 更新时间:2023-11-01 06:57:50 25 4
gpt4 key购买 nike

我构建了这个由多个 PHP 页面组成的网络表单向导。在这几页中,用户可以填写表格,数据会临时存储在一个 session 中,在最后一页, session 用于将所有数据存储在 MYSQL 数据库中。除了上传的文件外,一切正常。这是我的代码:

HTML: wizard_page2

<form name="registratieformulier" method="post" enctype="multipart/form-data" action="sw3.php">

<tr><td>Foto winkel uploaden: </td><td><input type="file" name="uploadfoto"/></td></tr><br /><br />

<tr><td><strong>Omschrijving van winkel:</strong></td> </tr><br />

<tr><textarea cols="50" rows="7" name="omschrijvingwinkel"></textarea></tr>
<input name="pkbedrijven" value="<?php echo($pkbedrijven); ?>" type="hidden" />
<input type="submit" name="stuurfoto" value="Verzenden" />

</form>

PHP: wizard_last_page

    $_FILES['uploadfoto']['name']       = $_SESSION["naamfoto"];
$_FILES['uploadfoto']['tmp_name'] = $_SESSION["tijdelijk"];

$bn = $_SESSION["wn"];

$target_path = "../../winkels/$bn/";

$target_path = $target_path . basename( $_FILES['uploadfoto']['name']);


move_uploaded_file($_FILES['uploadfoto']['tmp_name'], $target_path)or die("There was an error uploading the file, please try again!");
$foto_path = "http://mywebsite.nl/winkels/$bn/".basename($_FILES['uploadfoto']['name']);


$omschrijving = $_SESSION["omschrijving"];

$add = "UPDATE winkelprofiel SET winkelomschrijving='$omschrijving', winkelfoto='$foto_path' WHERE fkBedrijvenID=$pkbedrijven ";
$query_upload = mysql_query($add) or die("De winkelfoto en omschrijving konden niet worden opgeslagen");

最佳答案

$_FILES 数组仅包含有关已上传的文件的信息在此请求中。如果您没有将该文件保存在同一请求的其他位置,PHP 将在请求结束时将其删除。您不能简单地将 $_FILES['uploadfoto']['tmp_name'] 保存到 session 中并期望该文件稍后仍然存在,因为它不会存在。将 $_SESSION 中的值分配回 $_FILES 也没有意义,它不会将文件带回。

你需要做什么:

  1. 如果上传成功,立即将$_FILES['uploadfoto']['tmp_name']移到其他地方
  2. 将您移动到的位置保存到 $_SESSION
  3. 在多页进程结束时在 $_SESSION 中对该文件做一些事情(不再需要 $_FILES)
  4. 有一些机制来删除旧的上传文件,以防用户放弃 session 并且文件永远不会被使用

关于php - 如何在 PHP session 中存储照片上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10326743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com