【问题标题】:How to store images and serve on website如何在网站上存储图像和服务
【发布时间】:2016-01-09 16:04:51
【问题描述】:

我需要一个脚本,让用户在网站上为他们的产品上传 5 张图片。所有其他用户只能查看图像。 我认为最好的方法是让帐户用户创建一个文件夹,然后将所需的图像上传到其中。我认为我不需要将图像注册到数据库中,因为每个都不需要搜索。

如果我使用 mkdir 命令并找到一个脚本来上传图片,所有其他用户是否只能获得查看权限?

谢谢 使用php和mysql

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

标签: php mysql image-uploading


【解决方案1】:

由于问题是一般性的,因此答案也必须是一般性的:

  1. 您需要带有 POST 操作的网络表单
  2. 上传文件到服务器

对于 1-2,请参阅How to upload multiple files using PHP, jQuery and AJAX 获得最高票数的答案,它看起来很有希望(请参阅此链接在 #3 部分下方更新了 PHP 代码)

  1. 使用图像名称或链接图像将记录保存到数据库,并以其他方式记录数据库我要做的是 2 个表:

    CREATE TABLE entry ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(64) NOT NULL PRIMARY KEY (id) );

    CREATE TABLE entry_image( id int(11) NOT NULL AUTO_INCREMENT, image_path varchar(255) NOT NULL, PRIMARY KEY (id) );

3.1 保存“条目” 3.2 获取id 3.3 将所有图片文件名插入到 'entry_image'

这是更新的代码:

mysql_query("INSERT INTO entry (name) VALUE('$name')");
$entryId = mysql_insert_id();
for($i=0; $i<count($_FILES['file']['name']); $i++){
    $target_path = "uploads/";
    $ext = explode('.', basename( $_FILES['file']['name'][$i]));
    $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext)-1]; 

    if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {
        echo "The file has been uploaded successfully <br />";
    mysql_query("INSERT INTO entry_image (entry_id, image_path) VALUES ($entryId, '$target_path');
    } else{
        echo "There was an error uploading the file, please try again! <br />";
    }
}

注意:

  1. 确定你需要建立mysql连接并在完成后关闭它。

  2. 我也会用准备好的语句来做所有的 mysql

  3. 数据验证(图像)、错误检查等

【讨论】:

  • 谢谢,很有帮助。问:为什么要将任何内容保存到数据库中,我认为您可以创建一个文件夹并将图像添加到该文件夹​​中。看不出为什么需要数据库。当用户浏览产品时,我们可以只显示文件夹中的所有图像吗?请解释一下。
  • 我会将图像信息存储在数据库中以获得灵活性(将来),它不会占用太多空间并且更容易处理网络。如果认为这是额外的,那么您需要识别产品图像,可能会创建带有产品 ID 的子文件夹并将照片保存在那里。您的最终解决方案很大程度上取决于项目目标、环境等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 2015-12-03
  • 2011-01-25
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多