it-swarm-ko.tech

URI 또는 ​​파일 이름에서 파일의 공개 URL을 얻는 방법

뷰에서 PHP를 사용하고 있습니다 ( Views PHP ) 파일 참조에서 파일의 실제 URL을 추출하려고합니다. 파일 및/또는 파일 이름의 URI를 얻을 수 있습니다. 파일의 실제 공개 URL을 얻기 위해 어떤 drupal 함수를 사용할 수 있습니까?.

$videouri = db_query('SELECT filename FROM `file_managed` WHERE fid = ' . $nidvideo)->fetchColumn();
//drupal_set_message('<pre>'. print_r($videourl, TRUE) .'</pre>');
$realpath = drupal_realpath($videouri);
$videourl = file_create_url($realpath);
return($videourl);
7
user379468

"공개 URL"이란 정확히 무엇을 의미합니까?

file_create_url () 상자에서 이미지의 절대 URL을 제공 할 수 있습니다.

$videouri = db_query('SELECT uri FROM {file_managed} WHERE fid = :nidvideo', array(':nidvideo' => $nidvideo))->fetchColumn();
//drupal_set_message('<pre>'. print_r($videourl, TRUE) .'</pre>');
$videourl = file_create_url($videouri);

file_create_url()은 (는) 유효한 URI가 필요합니다. drupal_realpath()은 작동하지 않는 서버 경로를 제공합니다.

또한 SQL 주입 취약점을 피하기 위해 데이터베이스 쿼리를 변경했습니다.

16
AyeshK

더 이상 사용되지 않음 이므로 drupal_realpath()을 사용하지 마십시오.

다음 중 하나를 사용할 수 있습니다.

1 . (file_stream_wrapper_get_instance_by_uri($uri)):

$uri = $field[0]['uri'];  // file path as uri: 'public://';
if ($wrapper = file_stream_wrapper_get_instance_by_uri($uri)) {
  $path = $wrapper->realpath();
}


2 . (file_create_url($uri)):

$uri = $node->field_video['und'][0]['uri'];  // file path as uri: 'public://';
$video_path = file_create_url($uri);
9
Ankit Agrawal
3
kenorb