2011-10-08 2 views
0

css 및 js 변경에 대한 파일 업로드에는 IMCE를 사용하지만 js를 업로드 할 때마다 .txt 파일로 이름이 변경됩니다. 나는 코드를 고개를 업로드에 그것은 이상 허용 확장에 대한 관리 설정을 사용하여뿐만 아니라 그것을 탈 수있는 옵션을 제공 나던, includes/file.inc에 정의js 파일의 경우 파일 이름을 Drupal에서 txt로 변경합니다.

// Rename potentially executable files, to help prevent exploits. 
if (preg_match('/\.(php|pl|py|cgi|asp|js)$/i', $file->filename) && (substr($file->filename, -4) != '.txt')) { 
    $file->filemime = 'text/plain'; 
    $file->filepath .= '.txt'; 
    $file->filename .= '.txt'; 
} 

그것의 그것을 드루팔 API의 file_save_upload를 사용 IMCE에 제출합니다. 난 표준을 위해 이것을 바꾸고 싶지 않지만 다른 옵션은 imce의 어딘가에 허용 된 확장 기능을 가진 다른 이름으로 같은 함수를 정의하는 것입니다. 이렇게하는 다른 더 좋은 방법이 있습니까? 추신 : 사용자가 프로필을 기반으로 imce를 사용하기를 원하기 때문에 FTP를 사용하고 싶지 않습니다.

답변

0

많은 곳을 검색했습니다. 관리자가 업로드 할 대상과하지 않을 대상을 결정할 수 있도록 변수 get 메소드로 수행 했어야합니다. 업로드. 유일한 방법은 imce copy function rename을 해킹하여이 새로운 것을 호출하고 새로운 것으로 admin 인터페이스를 제공하는 것입니다.

+0

Drupal 7에서는 [file_munge_filename()] (http://api.drupal.org/api/drupal/includes!file.inc/function/file_munge_filename/7)에 설명 된대로 allow_insecure_uploads를 설정할 수 있습니다. 사용자가 요청할 때 서버가 파일을 실행하지 않도록 서버 구성을 편집하십시오. – Oswald

관련 문제