1

眼科医向けのアプリの一部として、ユーザーが画像をデータベースにアップロードできるようにするフォームを作成しています。私の問題は、これらの画像に関する情報を含むテーブル (shotテーブル) に関するものです。このテーブルの列は次のとおりです。

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

したがって、テーブルには画像に関する情報のみが保存されます。イメージ ファイルには、特定の規則に従って名前が付けられます。たとえば、列0000288964r.jpgのファイル名は次のようになります。Img_filename次の列のファイル名は、が に置き換えられ、形式がであるShrunk_img_filenameことを除いて同じです。たとえば、. ファイル名のこれらの数字は、この表の列から派生したもので、数字の桁数に応じて可変数のゼロが先頭に追加されます。rs.bmp0000288964s.bmpIDID

また、私のフォームでは、ユーザーがアップロードする画像を選択するファイルアップロード入力があります。これが私の問題が混ざり合うところです..

上記のように、これらの画像がサーバーにアップロードされるときに、これらの画像のファイル名としてデータベースに保存されているのと同じファイル名を使用したいのですが、手動でデータベースを調べて、次に利用可能なものを見つけます画像の ID と、アップロードする画像を選択するときに画像の名前を変更します。

これが可能かどうかは本当にわかりませんが、これを機能させる方法や回避策についてのアイデアを聞きたいです。ありがとう。以下にコードを含めます(ファイル名の作成に使用された2つのCASEステートメントにより、insertステートメントがとてつもなく長いので、その要旨を含めました)

<?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

0

これを行う最も簡単な方法は、Images/R と Images/S という 2 つの別個のディレクトリを作成することです。縮小された画像を適切な場所に保存するように設定します。次に、通常のサイズまたはそれ以下のサイズが必要かどうかに応じて、ファイル パスを設定できます。

于 2013-03-22T10:43:37.113 に答える