2011-03-21 3 views
0

필드에 파일 이름을 저장하는 가장 좋은 방법이 무엇인지 궁금합니다. 몇 가지주의 할 내가 지금까지 내가필드에 파일 이름을 저장하는 PHP, MySQL

$fname = $_FILES["name"]; 

mysql_connect('myssdfebhost.com',$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 
$query = "INSERT INTO uploadedfiles (filename) VALUES ('$fname')"; 
mysql_query($query); 

이 .. 확장이 잘려 나 있지 않은 경우 마음을 해달라고하지만

답변

3

에 넣어 나던 :

  • 내가 돈 ' t는 $_FILES["name"] 사용할 수 있다고 생각 : 당신이 사용한다, 대신
    • $_FILES['NAME OF YOUR INPUT FIELD']["name"]
  • SQL injections을 피하려면 $fnamemysql_real_escape_string()으로 이스케이프 처리해야합니다.
  • 업로드 된 파일이 임시 디렉토리에 업로드됩니다. 비 임시 위치로 이동하지 않으면 자동으로 삭제됩니다.
    • 파일을 보관하려면 move_uploaded_file() 기능을 참조하십시오. 당신이 다음 코드 부분을 사용하는


그것은 재미있을 수 :

var_dump($_FILES); 

당신이 사용할 수있는 알 수 있도록이는 $_FILES 배열에 무엇을 보여줍니다 - 일반적으로 양식의 <input type="file" ... />name 속성에 해당하는 키를 포함하여 해당 배열의 구조를 볼 수 있습니다. POST method uploads :


$_FILES 변수에 대한, BTW, 당신은 설명서의 다음 섹션에서 살펴 보셔야합니다.

+0

감사합니다. mysql_real_escape_string()에 대해 자세히 설명하고 실제로 실제로 어떤 이스케이프 처리를 수행 할 수 있습니까 – Shawn

+0

@Shawn : 기본적으로 특수 문자가 SQL 서버로 전송 될 때 올바르게 이스케이프되도록 보장하므로 더 이상 특별한 의미가 없습니다. - 필자는 관련 위키피디아 문서에 대한 링크를 제공하기 위해 내 대답을 편집했습니다. 여기서는 SQL 인젝션에 대해 더 많은 정보를 얻을 수 있습니다 :-) –

관련 문제