Tệp được quản lý: Cách cài đặt #default_value thích hợp là gì?


7
$form['picture']['file'] = array(
  '#type' => 'managed_file',
  '#title' => t('picture'),
  '#description' => t('Allowed extensions: gif png jpg jpeg'),
  '#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
  '#upload_location' => variable_get('picture_upload_location'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    // Pass the maximum file size in bytes
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);

Tôi có đoạn mã trên từ đây . Nó rất hữu ích, tuy nhiên tôi đang có một thời gian khó khăn #default_value.

$foogì Nó được đặt ở đâu và làm thế nào tôi có thể thay đổi nó? Tôi sẽ sử dụng hình ảnh được tải lên trên các trang khác (được mã hóa trong cùng một mô-đun).

Câu trả lời:


6

Chào mừng đến với câu trả lời của Drupal. Bạn chỉ cần truyền giá trị số nguyên fid cho giá trị mặc định. Để hiểu rõ hơn những gì là fid xem bên dưới mô tả.

fid là Id tệp duy nhất được lưu trữ trong cơ sở dữ liệu cho mỗi và mọi tệp được tải lên bằng Hệ thống tệp Drupal.

Vì vậy, nếu bạn muốn đặt hình ảnh mặc định thì nó nên được tải lên thông qua Hệ thống tệp Drupal. Lý tưởng nhất, bạn cần lưu trữ fid của tệp đã tải lên trong một biến bằng cách sử dụng biến_set trong trình xử lý trình và thực hiện biến_get trong giá trị mặc định để đặt fid. Đó là nó !!

Hy vọng nó trả lời :-)


vấn đề là hình ảnh của tôi có thể được thay đổi theo thời gian bởi người dùng tải lên. điều đó có nghĩa là tôi sẽ có fid khác nhau. tôi cần lấy fid hiện tại để có thể đặt nó làm default_value
Jayjay D. Luffy

Có, đối với điều đó, bạn cần sử dụng biến_set trong trình xử lý trình của biểu mẫu nơi bạn đặt fid của tệp đã tải lên thành một biến. Và sẽ tải tương tự bằng biến_get! Vui lòng đọc câu trả lời cập nhật của tôi :-)
Anil Sagar

0

Người dùng có thể sử dụng thuộc tính $ _GET nếu bạn đang kết xuất lại tệp mà không gọi hàm gửi. Nếu tệp đang gọi sau khi gửi hàm, hãy sử dụng $ form_state ['value'] ['file']

$ form ['file'] = mảng (
    '#type' => 'Managed_file',
    '#upload_location' => 'riêng tư: //',
    '# weight' => 5,
    '#upload_validators' => mảng (
      'file_validate_extensions' => mảng ('gif png jpg jpeg doc docx pdf xls xlsx rtf odt tiff'),
    ),
  );

  if (isset ($ _ GET ['file'])) {
      $ form ['file'] ['# default_value'] = $ _GET ['file'];
  }

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.