2009-08-16 2 views
0

안녕하세요PHP 질문 포럼 첨부 기능 도움말

저는 포럼이 있으며 "첨부"기능을 수행하는 방법을 생각하려고합니다. 스레드를 만들면 파일을 업로드하고 스레드에 첨부 할 수 있습니다.

테이블 파일에 파일 ID의 ID가있는 첨부 파일을 만들어야합니까 ?? 가장 좋은 방법은 뭐니? 그리고 첨부 파일을 1 개 이상 업로드 할 수 있기를 바랍니다. 사진의 경우 작은 그림을 보여줍니다.

파일이 존재하는지 어떻게 확인해야합니까? 어떻게 할거 니?

죄송 불쌍한 내 영어

답변

-1
솔직히 '첨부'라는 게시물의 테이블에 열을 만드는 것, 다음에 쉼표를 첨부 파일 이름의 구분 된 문자열을

file1.png,file2.png,file3.png

당신은 PHP로 그것을 얻을 때 다음, 단순히

$attachments = explode(',', $string);

폭발 정말 간단한 코드입니다,

foreach($attachments as $file) 
{ 
    if(!is_file($upload_directory.$file)) 
    { 
     $error[] = $file . " is not a valid attachment"; 
     // run cleanup script 
    } 
} 

은 첨부 파일을 얻으려면,하지만 당신은 확인할 필요가 있고 들어오는 파일을 살균 : 차 이미 업로드 디렉토리에 넣어 가지고 각 파일을 확인합니다.

foreach($_FILES as $array) 
{ 
    // Sanitize Here 
    die("SANITIZE HERE!"); 

    move_uploaded_file($array['tmp_name'], $upload_dir); 
} 
+0

정말 ... 왜 downvote가 있습니까? –

0

당신의 질문은 너무 광범위하지만 몇 가지 포인터주지 : /uploads/--thread_id--/1.jpg 같은 디스크에 뭔가를

  • 저장 이미지를,/업로드/- thread_id -/2.jpg 등등 (이 방법으로 DB를 변경할 필요가 없습니다.)

업로드 프로세스에 관해서는 유효성 검사 및 이미지 크기 조정에 대한 자세한 내용은에서 읽을 수 있습니다. (이 순서대로 읽는 것이 좋습니다) :

http://pt.php.net/manual/en/function.exif-imagetype.php -> image validation 
http://php.net/manual/en/function.move-uploaded-file.php -> upload process 
http://pt.php.net/manual/en/book.image.php -> image resizing & manipulation 
0

차차의 계획은 나에게 잘 들리지만 조심해야합니다. 저장하는 파일에 실행 권한이없고 해당 파일이 서버의 웹 액세스 가능 디렉토리에 있지 않은지 확인하십시오. 난 당신이 보안 목적으로 웹 디렉토리보다 높은 디렉토리에 업로드 디렉토리를 넣어해야한다고 생각.

파일을 저장할 수있는 또 다른 방법은 해당 이진 코드를 데이터베이스의 blob에 저장하는 것입니다. 이 방법에 이점이 있는지 확실하지 않지만 개인적으로 파일 업로드를 처리하지 않았습니다.

무엇보다도 업로드 된 데이터에주의하십시오!