php - 如何通过 PHP 中的 POST 方法传输图像
问题描述
我想发送存储在 $_FILES['the_file'] 中的现有图像。$_FILES['the_file'] 来自“img_upload.php”页面,用于上传该图像,然后将其发送到表单其余部分所在的“form.php”页面,然后发送到名为的处理页面“add_product.php”
我的问题是我想将“form.php”页面上的表单中的 $_FILES['the_file'] 发送到“add_product.php”页面(其余的表单来自“form.php”)。我怎样才能做到这一点?
这是我的代码:
// img_upload.php
<form action="form.php" method="post" enctype="multipart/form-data">
<input type='file' name='the_file' class='image-selector'>
<button type="submit">Insert the picture</button>
</form>
// form.php
<?php
$file = $_FILES['the_file'];
$fileName = $_FILES['the_file']['name'];
$fileSize = $_FILES['the_file']['size'];
$fileTmpName = $_FILES['the_file']['tmp_name'];
$fileType = $_FILES['the_file']['type'];
?>
<p>Picture name: <?php echo $fileName; ?></p>
<form action="../Includes/add_product.php" method="post" enctype="multipart/form-data">
<?php
echo "<input type='hidden' name='file' value=".$file.">";
?>
<input type="text" name="price" placeholder="Name the price">
<input type="text" name="sent_from" placeholder="Sent from">
<input type="text" name="category" placeholder="Select the category">
<button type="submit">Insert the product</button>
</form>
解决方案
如果要将其包含在隐藏输入中,则需要将其编码为字符串。通常的方法是对其进行base64编码。
当你将字符串插入到文档中时,一定要确保你使用了,htmlspecialchars
这样你就不会暴露于 XSS 攻击。
该方法包括将文件发送到服务器,然后将其(以较少压缩的形式)发送回浏览器,然后再次将其发送回服务器。
这不是带宽效率!
通常,此方法与服务器上的文件相同,然后将 id(例如文件名)发送回客户端(并有一些逻辑来清理用户在中途放弃进程时留下的旧文件)。
推荐阅读
- javascript - REACT 上的“FirebaseApp”类型上不存在属性“auth”
- c - 在 Visual Studio 代码中运行 openMP 代码的问题
- python - python_speech_features 包安装失败
- regex - 正则表达式匹配不包含斜杠的字符串
- jquery - jQuery - 根据 attr 值仅获取选中复选框的唯一值
- python - python: instaloader 得到关于 40K 429 错误的评论
- heroku - 有什么方法可以优化 cpu 中的 pytorch 推理吗?
- javascript - Quarkus POST 多部分 JSON 水果
- katalon-studio - 无法运行 katalon.exe
- react-native - React Native 中的简单 Sqlite 选择不显示行