vep*_*emp 4 php mysql database filesystems
我们正在尝试为壁纸创建一个站点,以便以某种方式大文件(2mb-5mb),因此我们需要将图像存储在磁盘空间而不是数据库中,而只存储到数据库的路径.所以,如果你能提供一些关于如何做到这一点的想法(我们现在知道的方法是创建一个带有上传功能的PHP脚本,并手动选择要上传的PC中的图像),除非你们有其他建议.教程将非常感谢.非常感谢!
这是管理员不为用户添加图像.注意:我们还没有开发任何脚本,所以这是为了从你们那里得到一些关于我们可以使用它的想法,如果没有人猜测我们将只使用php脚本.
对于上载的每个文件,生成一个UUID并将其用于磁盘上的文件名.这可以避免冲突,清理文件名和路径遍历漏洞.
你会有一个像这样的表:(id, description, filename)有像这样的值(1, "Green field", "0D729DCD-5116-4480-81CE-90A0380B557A.png").
接下来,您希望避免在一个文件夹中包含太多文件的问题 - 您将遇到许多FS的文件系统限制.
要解决此问题,请根据文件名的前几个字母创建目录.因为0D729DCD-5116-4480-81CE-90A0380B557A.png,你会存储它/0/D/7/0D729DCD-5116-4480-81CE-90A0380B557A.png.
你的表格,
<form action="PHP_FILE_PATH.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="Upload" />
</form>
Run Code Online (Sandbox Code Playgroud)
PHP部分
<?php
if($_FILES['image']['name'])
{
$save_path="FOLDER_PATH_TO_SAVE_UPLOADED_IMAGE"; // Folder where you wanna move the file.
$myname = strtolower($_FILES['image']['tmp_name']); //You are renaming the file here
move_uploaded_file($_FILES['image']['tmp_name'], $save_path.$myname); // Move the uploaded file to the desired folder
}
$inser_into_db="INSERT INTO `database`.`table` (`folder_name`, `file_name`) VALUES('$save_path', '$myname'))";
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7381 次 |
| 最近记录: |