2013-03-12 76 views
1

我正在構建一個表單,允許用戶將圖像上載到數據庫中,作爲眼科醫生應用程序的一部分。我的問題是關於含有這些圖像(shot表)信息的表,該表的列是:PHP mysql插入/上傳圖像到數據庫/服務器命名問題

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並在選擇圖像進行上傳時重命名這些圖像。

我真的不知道這是否可能,但我很樂意聽到關於如何使這項工作或任何解決方法的任何想法。謝謝。我將我包括下面的代碼(我的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> 
+1

我不認爲有一個** **可靠的方式來做到這一點不首先創建記錄,所以你得到一個ID,然後移動文件,並更新與文件名記錄。 – prodigitalson 2013-03-12 15:10:12

+0

:-(我認爲你是對的..但這表明我朝着正確的方向前進。 – reubenCanowski 2013-03-12 16:44:20

回答

1

我覺得我基本上沒有什麼建議...... prodigitalson

include()到PHP文件的調用是插入一個新的鏡頭(同樣的查詢在我的問題)

然後我include()另一個呼叫另一個php文件,選擇我剛剛插入的新行,並將結果行的每一列分配給變量,然後分配到會話變量中

然後會話變量用於我的腳本中,該圖像將圖像上傳到我的服務器,並使用image filename和也創建縮略圖l圖像基於我的shrunk image filename

0

這樣做,這將是最簡單的方法只有2個獨立的目錄圖像/ R和圖像/ S。將縮小的圖像設置爲保存在相關位置。然後,您可以根據是否需要常規大小或更小來設置文件路徑。

相關問題