2014-02-05 4 views
0

특정 테이블 행에 대한 파일 (첨부 파일)을 보유하는 시스템이 있습니다. 이는 파일 이름이 몇 번 같을 수 있음을 의미합니다. 나는 나중에 행 ID, 파일 이름 또는 파일 ID를 찾고 다운로드 할 파일을 제공 할 수있는 방법으로 파일을 저장하는 방법을 찾으려고합니다.은 서버에 표시되는 것과 다른 파일 이름을 제공하는 방법입니까?

다음과 같은 아이디어가 있습니다.

  1. 각 행에 대해 각각의 행 폴더에 파일 ID가있는 다른 폴더를 만든 다음 그 파일을 보유합니다. 이제 그 문제는 디렉토리를 다루는 것이고 때로는 권한이 문제가 될 수도 있습니다.

  2. (이 방법이 더 좋음) 모든 파일이있는 폴더가 1 개 있습니다. 파일 이름은 행 ID, 파일 ID 및 파일 이름으로 구성됩니다. 이 파일 name.jpeg 입니다 : 12212.18.this is file name.jpeg

    날이 파일대로 봉사 할 수있는 방법이있다 :

내 문제는 내가 방법 2를 사용하고 파일 이름이 같은 것을 말할 수 있습니까?

3/4 방법이 있다면 더 좋을 것이라고 생각할 수 있습니다. 잘 될 것입니다.

감사합니다.

+0

당신은 PHP 스크립트를 통해 그것을 넘겨주고 파일 이름을 바꿀 수 있습니다. – cmorrissey

+0

PHP 스크립트를 통해 어떻게하면 PHP로 작업 할 수 있습니까? –

+0

이 솔루션을 참조하십시오 : http://serverfault.com/a/316817/88886 - 서비스중인 내용을 기반으로 'Content-type'을 변경해야합니다. 디폴트'application/octet-stream'을 사용하면 모든 유형의 파일에 대한 파일 다운로드가 강제 실행됩니다. – degenerate

답변

3

PHP를 사용하여 파일을 열고 읽은 다음 원하는 이름으로 브라우저로 이동하십시오.

header('Content-Disposition: attachment; filename="your_file_name.jpg'); 

다른 헤더를 설정해야 할 수 있습니다. Content-Type - @http://us2.php.net/manual/en/function.header.php을 읽는 것이 가장 좋습니다.

+0

최고의 답변. – PlantTheIdea

+0

그래서 기본적으로 스트리밍 하시겠습니까? –

+0

나는 그것을 얻는다 고 생각한다. 기본적으로 나는 파일 이름을 취하는 페이지를 만들고 실제 파일을 서버에 저장하는 콘텐츠 처리를 사용한다. 맞습니까? –

0

Content-Disposition header은 그렇게 할 것입니다. 그러나 이것은 사용자가 하드 드라이브에 다운로드하고 저장하기위한 파일을 제공한다고 가정합니다. 웹 페이지에 포함 할 이미지를 제공하고 싶다면 파일 이름에 대해 전혀 신경을 쓰지 않는 이유는 무엇입니까?

+0

은 HD를 저장합니다. –

관련 문제