2010-03-04 7 views
0

나는 흔히 볼 수있는 문제에 대한 여러 가지 해결책을 조금 어지럽 혔지만 만족스러운 방법으로 아직 해결하지 못했습니다.드루팔 (Drupal의 파일 업로드 처리하기)

내가 원하는 것은 사용자가 새 파일을 업로드하거나 기존 파일을 선택하여 재사용 할 수있는 기능입니다.

내가 지금까지 사용해 왔던 것은 filefield, filefield_sources, imceckeditor 모듈의 조합입니다. 나는 ckeditor가 그 해결책을 위해 정말로 중요하지 않다고 생각하지만, 어쨌든 아카이브의 이미지를 임베드 할 수 있어야합니다. 그리고 이것은 IMCE로 수행됩니다. 나는 모든 것을 내가 하위 디렉토리를 생성하고 IMCE 설정에 대한 전체 액세스 권한을 설정 filebrowser에서 액세스 할 수 싶지 않기 때문에, 모든 filehanding이 IMCE을 통해 이루어졌다으로이만큼 괜찮 았는데 그 default/files/site

를 호출 할 수 있지만 때 파일 필드에서 직접 파일을 업로드했는데 내 파일은 기본/파일 루트에 저장되었습니다. 따라서 .flv 형식을 허용하는 필드에 default/files/site/movies과 같이 필드에 대한 폴더를 설정했습니다. IMCE를 통해 파일에 액세스하려고 시도하지 않는 한 제대로 작동했습니다. filefield에서 만든 폴더는 IMCE에서 액세스 할 수 없습니까?

큰 프로젝트 (200MB 이상)를 지원해야하는 위치에 있지만 다른 프로젝트의 경험을 통해 FTP를 통한 파일 업로드가 일반적으로 생명을 구할 수 있도록 허용하지만 IMCE가 ' 데이터베이스에 존재하지 않기 때문에 어떤 식 으로든 Drupal을 통해 업로드되지 않은 파일을 지원합니다 (메시지를 제공함 : The selected file could not be used because the file does not exist in the database.)

나는 내 문제에 대해 명확한 질문이 없지만 어떻게 든 나는 이것을 꽤 빨리 알아야합니다. 어떻게하면이 문제를 해결할 수 있을까요? 나는이 문제가있는 사람이 처음이 아니라는 것을 알고 있습니다. 그러나 나는 아직 훌륭하고 안정적인 해결책을 찾을 수 없었습니다. 내가 뭘 놓치고 있니?

답변

0

글쎄, 나는 개인적으로 내 머리 꼭대기에서 IMCE에 익숙하지 않지만 ftp를 통해 업로드 된 파일이 파일 테이블에 추가되어야한다면 내 충동은 작은 것을 쓰는 것이 될 것이다. 모듈은 사용자가 버튼을 클릭하고 일괄 처리를 시작할 수 있도록합니다. (이것은 제 배치 API가 5에 없기 때문에 Drupal 6을 사용하고 있다고 가정합니다.)

이 배치 프로세스는 적절한 디렉토리에있는 모든 파일을 반복합니다. 파일을 업로드 한 후 file_copy() (Drupal의 파일 API에서)을 사용하여 파일을 기본/files/site에 복사 한 다음 해당 파일을 파일 테이블에 추가합니다. 파일은 실제로는 drupal_write_record()으로 간단합니다.

배치 API를 사용할 필요조차 없습니다. 10-30 개의 대용량 파일 또는 200-300MB 파일을 업로드하는 경우 다소 중요합니다.

배치 API를 사용하는 경우 http://drupal.org/node/180528을 보겠습니다.이 API는 일괄 처리 API가 작동하는 방식에 대한 기본적인 예를 포함하고 있습니다. 기본적으로 API에 function_a를 계속 호출하고 function_a를 계속 호출하도록 구성되어 있습니다. 완료 될 때까지 컨텍스트 배열에서 진행 상황을 설정하면 배치 프로세스가 완료됩니다. 그런 다음 ftp를 통해 파일을 업로드하여 웹 사이트의 버튼을 눌러 파일을 이동하고 등록하면됩니다.또한

+0

상당히 직선 기대를, 내가 좀해야합니다 나중에 단계, 조언 주셔서 감사합니다 :) – Marco

관련 문제