【问题标题】:PHP mysql Insert/Upload images to database/server naming issuesPHP mysql 将图像插入/上传到数据库/服务器命名问题
【发布时间】:2013-03-12 14:59:11
【问题描述】:

我正在构建一个表单,允许用户将图像上传到数据库中,作为眼科医生应用程序的一部分。我的问题涉及包含这些图像信息的表(shot 表),该表的列是:

ID | Visit_ID | Patient_ID | Img_Filename | Shrunk_img_filename | Subdir | SubSubDir|

因此该表仅存储有关图像的信息。图像文件以特定约定命名。例如,0000288964r.jpgImg_filename 列中的文件名的样子。下一列中的文件名 Shrunk_img_filename 相同,只是 r 被替换为 s 并且格式为 .bmp。例如,0000288964s.bmp。文件名中的这些数字来自该表的ID 列,根据ID 的位数,在开头添加可变数量的零。

另外,在我的表单中,我有一个文件上传输入,用户可以在其中选择要上传的图像。这就是我的问题所在..

我想使用相同的文件名,如上所示,这些文件名存储在我的数据库中,作为这些图像上传到我的服务器时的文件名,但我不手动通过数据库查找图像的下一个可用 ID,并在选择要上传的图像时重命名图像。

我真的不知道这是否可能,但我很想听听有关如何使这项工作或任何解决方法的任何想法。谢谢。我将在下面包含我的代码(由于用于创建我的文件名的 2 个 CASE 语句,我的插入语句非常长,所以我只包含它的 jist)

<?php
include('db.php');
if (isset($_FILES['myfile']) && isset($_GET['id'])) 
{
    $filename = $_FILES['myfile']['name'];
    $filetype = $_FILES['myfile']['type'];
    $filesize = $_FILES['myfile']['size'];
    $filetmp = $_FILES['myfile']['tmp_name'];
    $fileerror = $_FILES['myfile']['error'];
    $id = $_GET['id'];

if ( $fileerror > 0){
die("Error Uploading File Code $fileerror.");
}
else
{
move_uploaded_file($filetmp,"C:/wamp/www/vixer/images/".$filename);
echo "Upload Complete!";
}

$sqlvisit="INSERT INTO shot (VISIT_ID, PATIENT_ID, IMG_FILENAME, SHRUNK_IMG_FILENAME, SUBDIR, SUBSUBDIR, IMG_FILE_FORMAT, EYE) SELECT (SELECT max(ID) from visit where visit.patient_id =" . $id ."), " . $id . ", (SELECT CASE blah blah), (SELECT CASE blah blah), '9', '1', '124', '0' FROM SHOT WHERE shot.patient_id = " . $id . "";
mysql_query($sqlvisit);
}
?>

<form id="form3" action="" method="post" enctype="multipart/form-data" style="display:none;width:300px;background-color: #FFFFFF;"> 
Upload Image(s)..<input type="file" name="myfile"><br />
<input type="submit">
</form>

【问题讨论】:

  • 我认为没有一种可靠的方法可以做到这一点,而无需先创建记录,以便您获得一个 ID,然后移动文件并使用文件名更新记录。
  • :-(我认为你是对的..但这为我指明了正确的方向。

标签: php mysql insert naming


【解决方案1】:

我想我基本上按照 prodigitalson 的建议做了...

include() 调用了一个插入新镜头的 php 文件(与我的问题中的查询相同)

然后我 include() 再次调用另一个 php 文件,该文件选择我刚刚插入的新行并将结果行的每一列分配给变量,然后分配给会话变量

然后在我的脚本中使用会话变量,该脚本使用image filename 将图像上传到我的服务器,并根据我的shrunk image filename 创建缩略图。

【讨论】:

    【解决方案2】:

    最简单的方法是只使用 2 个单独的目录 Images/R 和 Images/S。将缩小后的图像设置为保存在相关位置。然后,您可以根据需要常规大小还是更小来设置文件路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-29
      • 2014-04-27
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 2022-06-10
      相关资源
      最近更新 更多