2013-03-12 2 views
1

사용자가 안과 의사 용 앱의 일부로 이미지를 데이터베이스에 업로드 할 수 있도록 양식을 작성합니다. 내 문제는 이러한 이미지합니다 (shot 테이블)에 대한 정보를 포함하는 테이블을 우려,이 테이블의 열은 다음과 같습니다 PHP mysql 데이터베이스/서버 네이밍 문제에 이미지 삽입/업로드

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

는 그래서 테이블은 이미지에 대한 정보를 저장한다. 이미지 파일의 이름은 특정 규칙에 따라 지정됩니다. 예를 들어 0000288964r.jpgImg_filename 열의 파일 이름입니다. rs으로 대체되고 형식이 .bmp 인 경우를 제외하고 다음 열의 파일 이름은 Shrunk_img_filename입니다. 예 : 0000288964s.bmp. 파일 이름의이 숫자는이 테이블의 ID 열에서 파생되며 ID의 자릿수에 따라 가변적 인 0이 시작 부분에 추가됩니다.

또한 내 양식에는 사용자가 업로드 할 이미지를 선택하는 파일 업로드 입력이 있습니다. 이것은 내 문제가 믹스에 들어있는 곳입니다.

내 서버에 업로드 할 때 이러한 이미지의 파일 이름으로 내 데이터베이스에 저장된 것과 동일한 파일 이름을 사용하고 싶습니다. 하지만 수동으로 데이터베이스를 탐색하지 않아도 이미지의 다음 사용 가능한 ID를 찾고 이미지를 업로드 할 때 선택합니다.

이것이 가능한지 정말로 알 수는 없지만이 작업이나 어떤 종류의 해결 방법을 만드는 방법에 대한 아이디어를 듣고 싶습니다. 감사.

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

+0

:-(나는 당신이 맞다고 생각합니다. 그러나 이것은 올바른 방향으로 나를 지적했습니다. – reubenCanowski

답변

1

나는 ... 나는 기본적으로 무엇을 제안 prodigitalson했다고 생각

I include() (내 문제로 동일한 쿼리) 새로운 샷을 삽입하는 PHP 파일을 호출 다음

I include() 다른 통화에 이 새로운 행을 선택하는 또 다른 PHP 파일 방금 입력 한 결과 행의 각 열을 변수와 세션 변수에 할당합니다.

그런 다음 세션 변수는 내 서버에 image filename으로 이미지를 업로드하는 스크립트에서 사용됩니다. 또한 썸네일을 만듭니다. 이미지는 내 shrunk image filename을 기반으로합니다.

0

것이 가장 쉬운 방법 (내 삽입 문 그래서 내 파일 이름을 만드는 데 사용되는 2 CASE 문에 난 그냥 그것의 JIST를 포함 길기 때문에 터무니입니다) 아래에 내 코드가 포함되어 있습니다 Images/R 및 Images/S라는 두 개의 디렉토리가 있습니다. 관련 위치에 저장할 수축 된 이미지를 설정하십시오. 그런 다음 일반 크기보다 작은 지 여부에 따라 파일 경로를 설정할 수 있습니다.