我正在構建一個表單,允許用戶將圖像上載到數據庫中,作爲眼科醫生應用程序的一部分。我的問題是關於含有這些圖像(shot
表)信息的表,該表的列是:PHP mysql插入/上傳圖像到數據庫/服務器命名問題
ID | Visit_ID | Patient_ID | Img_Filename | Shrunk_img_filename | Subdir | SubSubDir|
所以該表僅存儲有關的圖像信息。圖像文件是用特定的慣例命名的。例如,0000288964r.jpg
是Img_filename
列中的文件名稱。下一列Shrunk_img_filename
中的文件名相同,但r
被替換爲s
,格式爲.bmp
。例如,0000288964s.bmp
。文件名中的這些數字源自此表的ID
列,其中可變數目的零加到開頭,具體取決於ID
的位數。
另外,在我的表單中,我有一個文件上傳輸入,用戶選擇要上傳的圖像。這是我的問題進入混合..
我想使用相同的文件名,如上所示,存儲在我的數據庫爲這些圖片的文件名時,他們上傳到我的服務器,但我不想手動瀏覽數據庫,找到圖像的下一個可用ID並在選擇圖像進行上傳時重命名這些圖像。
我真的不知道這是否可能,但我很樂意聽到關於如何使這項工作或任何解決方法的任何想法。謝謝。我將我包括下面的代碼(我的INSERT語句是可笑長由於用於創建我的文件的名稱,以便在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,然後移動文件,並更新與文件名記錄。 – prodigitalson 2013-03-12 15:10:12
:-(我認爲你是對的..但這表明我朝着正確的方向前進。 – reubenCanowski 2013-03-12 16:44:20