1

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

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

因此该表仅存储有关图像的信息。图像文件以特定约定命名。例如,列0000288964r.jpg中的文件名是什么Img_filename样的。下一列中的文件名Shrunk_img_filename相同,除了r替换为 ans并且格式为.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>
4

2 回答 2

1

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

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

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

然后在我的脚本中使用会话变量,该脚本使用 将图像上传到我的服务器,image filename并基于我的shrunk image filename.

于 2013-05-02T14:49:06.163 回答
0

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

于 2013-03-22T10:43:37.113 回答