【问题标题】:How to upload picture into a database with a html form which have a type = "file"?如何使用类型=“文件”的html表单将图片上传到数据库中?
【发布时间】:2017-03-13 14:58:50
【问题描述】:

我真的不知道如何将我的图片存储在数据库中。用户将选择一个文件,上传它,然后单击提交按钮。之后,图片应自动加载到数据库中。有什么简单的方法可以解决吗?我应该使用 BLOB 吗?如果我可以将图片加载到服务器中会更有效,并且sql变量将获取图片的路径。这可以实现吗?

              <meta charset="UTF-8"/>
              <form method = "post" id= "myform" name="myform" action = "<?  php $_PHP_SELF ?>">
              <table width = "400" border = "0" cellspacing = "1" 
                 cellpadding = "2">


                    <td><input name = "user_name" type = "text" 
                       id = "user_name"></td>

                  <input name = "add" type = "submit" id = "add" 
                          value = "Küldés">
                 </tr>
               </form>



                    <td><form action="uploadpic.php" method="POST" enctype="multipart/form-data" />
                <input type="file" name="user_image" id="user_image" />

                </form>

【问题讨论】:

  • 我认为对于小图像,您可以使用 base64 字符串,但对于较大的图像,上传文件并将其存储在服务器上,然后在数据库中引用文件名。如果这是你想要的,我可以发布一个答案(因为我正在处理具有相同功能的代码,所以我只需要在这里复制+粘贴)
  • 我将不胜感激。我只会使用小尺寸的图片,但系统的本质是让它完全自动。用户选择文件,直接上传到服务器,sql变量自动获取路径。
  • 我希望这就是您要找的。 - 发布答案

标签: phpmyadmin blob image-uploading forms http-post


【解决方案1】:

基本上,您只需使用:

HTML:

<form action="uploadpic.php" method="POST" enctype="multipart/form-data" />
<input type="file" name="theimage" />
<input type="submit" value="Send">
</form>

PHP:(上传图片.php)

<?php
$uid = uniqid();

$image = $uid . $_FILES['theimage']['name'];

//Make sure that the folder "images/" exists
move_uploaded_file($_FILES['theimage']['tmp_name'],'images/' . $uid . $_FILES['theimage']['name']);

// Assuming you already have the row and you use a SESSION which stores your username
$sql = mysql_query("UPDATE your_table SET image = '$image' WHERE username = $_SESSION['username']", $sqlconnection);
?>

如果有任何问题或错误,请随时发表评论,我会为您提供帮助。

【讨论】:

  • 不幸的是我不使用 Session,所以我不知道我应该用什么来代替它:S 而且我担心路径不够精确。 public_html/images/clients
  • 向我展示您的 SQL 查询的外观(简化),也许我可以告诉您可以用什么替换“用户名”。现在到路径:如果要将文件上传到public_html/images/clients,只需在上面的代码中更改即可,很简单。
  • $result = mysqli_query($conn,$sql) or die("选择错误" .mysqli_error($conn)); $conn 包含“主机名”、“用户名”、“密码”、“数据库名”。 $sql 包含“插入...”命令。还是太简单了?
  • 哦,我明白了。我有一个 user_name 变量,没问题。它还没有工作,但你帮了我很多。谢谢你:)
  • 最后我设法上传了文件。我只有最后一个问题。我正在使用一个表单来发送数据,但是该表单的操作 = "" 所以我尝试在第一个表单中制作第二个表单,但它没有加载文件。如果我在第一个表单之外制作表单,它正在工作:)
猜你喜欢
  • 2015-01-06
  • 2018-06-06
  • 2022-01-25
  • 2011-03-11
  • 2011-10-07
  • 2015-05-27
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多