2012-02-21 3 views
0

PHP를 사용하여 파일을 업로드 한 다음 URL을 가져 와서 데이터베이스에 추가 할 수 있습니다. 새 파일의 URL을 MySQL을 통해 삽입하는 데 사용할 수있는 변수로 가져 오려면 어떻게해야합니까?PHP 파일 업로드 .. URL 검색

<?php 
// Configuration - Your Options 
    $allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // These will be the types  of file that will pass the validation. 
    $max_filesize = 524288; // Maximum filesize in BYTES (currently 0.5MB). 
    $upload_path = './files/'; // The place the files will be uploaded to (currently a 'files' directory). 

$filename = $_FILES['userfile']['name']; // Get the name of the file (including file extension). 
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename. 

// Check if the filetype is allowed, if not DIE and inform the user. 
if(!in_array($ext,$allowed_filetypes)) 
    die('The file you attempted to upload is not allowed.'); 

// Now check the filesize, if it is too large then DIE and inform the user. 
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize) 
    die('The file you attempted to upload is too large.'); 

// Check if we can upload to the specified path, if not DIE and inform the user. 
if(!is_writable($upload_path)) 
    die('You cannot upload to the specified directory, please CHMOD it to 777.'); 

// Upload the file to your specified path. 
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) 
    echo 'Your file upload was successful, view the file <a href="' . $upload_path . $filename . '" title="Your File">here</a>'; 
// It worked. 
    else 
    echo 'There was an error during the file upload. Please try again.'; // It failed :(. 

?> 

답변

2
도움 소원
호프 upload_tmp_dir을 요소

당신은 귀하의 사이트에 파일을 이동 : $upload_path . $filename입니다

move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)

파일로 상대 URL입니다. 절대 URL을 얻기 위해 사이트 URL을 미리 지정할 수 있습니다.

0

사실, PHP에서 업로드 된 파일은 추가 처리를 위해 임시 작업 공간/디렉토리에 저장됩니다.
그래서 당신은 아주 잘


$_FILES["file"]["tmp_name"] 

은 당신이 당신의 서버 위치에 파일의 복사본을 저장주는 URL, 그것은에서 현재의 URL을 얻을 수 있습니다.
당신이
를 PHP 애플리케이션을 통해 업로드 한 파일에 대한 기본 loaction을 지정하려는 경우에는 php.ini 파일에서 정의 할 수 있습니다 -> 편집 -> :

+0

업로드가 완료된 후 제거되므로 tmp-location은 쓸모가 없습니다. 솔루션에 대한 husbas의 대답을 참조하십시오. – OptimusCrime

+0

@OptimusCrime은 둘 다 같은 $ _FILES [ "file"] [ "tmp_name"] 복사하는 것입니다. 그것은 간단한 질문이며 간단한 대답입니다. –