如何存储图像并在网站上提供服务

时间:2015-10-12 08:39:25

标签: php mysql image-uploading

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

如果我使用mkdir命令并找到上传图像的脚本,那么所有其他用户是否只能获得视图访问权限?

由于 使用php和mysql

1 个答案:

答案 0 :(得分:0)

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

  1. 您需要具有POST操作的webform
  2. 将文件上传到服务器
  3. 对于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) );

    2. 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. 数据验证(图像),错误检查等