Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过表单将文件上传到Drupal 7后,如何获取文件';这条路怎么走?_Php_Drupal_Fileapi - Fatal编程技术网

Php 通过表单将文件上传到Drupal 7后,如何获取文件';这条路怎么走?

Php 通过表单将文件上传到Drupal 7后,如何获取文件';这条路怎么走?,php,drupal,fileapi,Php,Drupal,Fileapi,我有一个表单可以将文件上传到Drupal安装。我想将该文件的路径存储在表中。如何获取最近上载的文件的路径?我试过了 $f = file_load($form_state['values']['field_file']); $f->uri; 但这不起作用。有什么线索吗?试着调试$f对象,看看是否发生了错误: $f = file_load($form_state['values']['field_file']); echo '<pre>'; print_r($f); $f=文件

我有一个表单可以将文件上传到Drupal安装。我想将该文件的路径存储在表中。如何获取最近上载的文件的路径?我试过了

$f = file_load($form_state['values']['field_file']);
$f->uri;

但这不起作用。有什么线索吗?

试着调试$f对象,看看是否发生了错误:

$f = file_load($form_state['values']['field_file']);
echo '<pre>';
print_r($f);
$f=文件加载($form_state['values']['field_file']);
回声';
印刷费($f);

URI是Drupal内部使用的public://private://etc。要转换它,请使用file_create_url();理想情况下,您仍然应该存储URI,然后在渲染时使用
文件\u create\u url()

当您说不工作时,到底发生了什么?您可以看到,当我上载文件时,它的上载路径是:public://images/. 然后将其上传到Drupal安装中的目录(/sites/default/files/images/)。然后,为了将其插入数据库,我使用$f->uri。但当我将其从数据库中拉出以显示它时,img src是public://images/myimage.png -这是一个断开的链接。我真正的问题是如何更改该零件以使其正确显示。对不起,我不清楚。啊,这是标准的D7内部URL结构。您需要使用
file\u create\u URL()
将其转换为可用的URL。发布了一个答案,说明此。文件\u create\u url提供了绝对url。有没有办法获得相对url?当你说相对-相对什么?docroot还是
站点/default/files
文件夹?看看前者和后者
$f = file_load($form_state['values']['field_file']);
$url = file_create_url($f->uri);