2014-05-14 2 views
2

선택적으로 이미지 파일을 다운로드하여 클라이언트의 파일 시스템에 저장할 수있는 버튼을 웹 페이지에 제공해야합니다. 나는 Force a file or image to download using .htaccess 에서 접근 방법을 사용하는 것이 생각 the Apache documentation의 스타일에 따라 내 htaccess로 쓴,htaccess : <if>을 사용 하시겠습니까?

<If "%{QUERY_STRING} =~ /download/"> 
Header set Content-Disposition attachment 
</If> 

그때 http://www.example.com/images/image123.jpeg?download=true 같은 링크를 제공하고, 그건 내 프로덕션 서버와 잘 작동합니다. 그러나 OS/X의 아파치 또는 MAMP를 사용하여 내 책상의 Mac 개발 시스템에 error 500을 제공합니다. 아파치는 <If> 문을 이해하지 못한다고 불평하고, serverFault은 아파치 2.2가 이해하지 못한다고 알려줍니다. OS/X와 MAMP 모두 Apache 2.2를 제공합니다.

<if> 문을 다시 작성하여 Apache 2.2에서 동일한 효과를 낼 수있는 방법이 있습니까? 이 IE11 또는 Safari 중 하나에서 작동하지 않기 때문에

난 그냥

<a download="clientFileName.jpg" href="/images/image123.jpeg">Download</a> 

을 사용할 수 없습니다.

+0

를 사용하여 서버 측 프로그래밍 언어 :

RewriteEngine On RewriteCond %{QUERY_STRING} (?:^|&)download=[^&]+ [NC] RewriteRule^- [E=DL:1,L] 

그런 다음 헤더를 설정 조건부이 ENV 변수를 사용합니다. PHP –

+0

처럼 처음에는 성공적으로 PHP를 제공했지만 현재 이미지 크기는 수백 메가 바이트입니다. PHP 프로세스는 너무 오래 실행되는 호스팅 서비스에 의해 강제 종료됩니다. 허용 된 런타임을 확장 할 수 없습니다. – emrys57

답변

2

은 먼저 재 작성 규칙을 사용하여 ENV 변수를 설정할 수 있습니다

Header set Content-Disposition attachment env=DL 
+1

매우 유망 해 보입니다. 작동하는 것 같습니다. 이제 구문을 이해할 수 있다면 ...! 여기에 몇 분만 줘. – emrys57

+1

네가 한 말을 이해하기에 충분할만큼 아파치 문서를 읽은 후에 네, 확실히 작동합니다. 매우 감사합니다! – emrys57

+0

환영합니다. 다행입니다. – anubhava

관련 문제