it-swarm-vi.com

Đính kèm tập tin máy chủ hiện tại vào trường tập tin

Làm cách nào để bạn đặt đường dẫn tệp hiện có cho trường tệp, trong Drupal 7? Tùy chọn duy nhất tôi thấy là tải lên lại tệp.

Trong Drupal 6, Nguồn FileField dường như làm điều này.

Liệu Đường dẫn FileField hoặc IMCE cùng với trường tệp cho phép gán tệp máy chủ?
[.__.] Có API để quản lý các trường tệp theo chương trình không?

Chỉnh sửa
[.__.] Tôi mới phát hiện ra rằng điều này có thể tất cả đều được thực hiện với mô-đun phương tiện. Tôi cũng có mediaelement đã cài đặt. Tuy nhiên nó không hoàn toàn trực quan, vì vậy đây là các bước tôi đã thực hiện:

Nhập vào thư viện phương tiện: /admin/content/media/import

Tạo một mediafile asset cánh đồng. Điều này cho phép bạn đính kèm từ thư viện.

Các định dạng hiển thị (ví dụ cho âm thanh) có tại /admin/config/media/types/manage/audio/display/, thay vì loại nội dung "quản lý hiển thị" chỉ cung cấp "lớn", "nhỏ", "xem trước", v.v.

7
brian_d

Tôi sẽ thử Media và các mô-đun liên kết của nó. Đó là một sự phát triển của Nguồn FileField và cung cấp hầu hết các loại chức năng tương tự mặc dù với Drupal 7 trường.

3
Kim Pepper

Nguồn FileField đã được chuyển cho D7 và thật tuyệt vời. Quá có mô-đun được gọi là Tập tin chọn trực quan thêm abbiliti cho lựa chọn tập tin hiện có dựa trên Chế độ xem đẹp (tốt cho hình ảnh).

3
Bobík

Tôi đã chọn IMCE kết hợp với IMCE cho FileField (D7) vì khách hàng cần lựa chọn nhanh các tệp được tải lên bằng ftp - và điều này mà không cần sao chép chúng cho mỗi nút.

Theo như tôi thấy Nguồn Filefield luôn sao chép các tệp đính kèm tại thời điểm này. Các nhà nhập khẩu được cung cấp bởi Media cũng làm điều đó.

3
phils

Tôi có thể giúp bạn với việc đính kèm một tập tin vào một tập tin. Tuy nhiên, tôi đã không cố gắng đạt được một tiện ích tự động hoàn thành để có được tệp mà bạn muốn đính kèm vào trường tệp.

bạn có thể sử dụng file_get_contents() để lấy tệp mà bạn muốn đính kèm và sau đó sử dụng file_save_data để đưa nó vào Drupal. Điều hấp dẫn là bạn sẽ cần thay đổi trạng thái của tệp bạn vừa thêm để bạn có thể đính kèm tệp đó vào một nút sau đó. Thông thái khác, bạn sẽ nhận được một lỗi xác nhận.

$file = file_save_data($data, $destination = NULL, $replace = FILE_EXISTS_RENAME);

db_update('file_managed')
  ->fields(array('status' => 0))
  ->condition('fid', $file->fid, '=')
  ->execute();

Khi biểu mẫu được gửi với fid là giá trị cho trường tệp mà bạn muốn tệp được đính kèm với trạng thái tệp được quản lý sẽ được cập nhật tự động.

Hãy xem http://api.drupal.org/api/drupal/includes--file.inc/group/file/7 để tham khảo thêm.

2
Jepedo

Bạn luôn có thể truy cập Tệp dưới dạng Node và sử dụng Node Trường tham chiếu + Trình định dạng tùy chỉnh (để hiển thị Node như một Tệp) để thực hiện việc này, cho phép bạn cập nhật nút Tệp và có tất cả các tham chiếu của nút Tệp đó được cập nhật trên bảng.

Trong D6, bạn cũng có thể sử dụng Mối quan hệ nút để cung cấp Thư viện tệp và Trình định dạng 4 Node Trường tham chiế để định dạng nút như bất kỳ trình định dạng FileField có sẵn nào.

1
Decipher

Nguồn FileField chưa được chuyển đến Drupal 7, nhưng đã được lên kế hoạch. Xem vấn đề tương ứng trên drupal.org .

1
Pierre Buyle