Salve galera,
Tudo bem ?
Seguinte, estou desenvolvendo um plugin BLOCO chamado "teste". Existe um form em html5 e PHP nele onde eu posto um arquivo dentro do mesmo. No momento do post eu salvo o arquivo com o seguinte comando:
$uploaded_file_path = $_FILES['test']['tmp_name']; // temp path to the actual file
$filename = $_FILES['test']['name']; // the original (human readable) filename
$file_storage = get_file_storage(); //instance of Moodle's file_storage class:
$context = context_system::instance();//context userid
$fileinfo = array(
'contextid' => $context->id,
'component' => 'component', // mod_[your-mod-name]
'filearea' => 'private', // arbitrary string
'itemid' => $lastinsertid, // use a unique id in the context of the filearea and you should be safe
'filepath' =>'filepath', //virtual path
'filename' => $filename); // virtual filename
$file_storage = get_file_storage();
if ($file_storage->file_exists($fileinfo['contextid'],
$fileinfo['component'],
$fileinfo['filearea'],
$fileinfo['itemid'],
$fileinfo['filepath'],
$fileinfo['filename'])) return false; // (this code is actually in a function)
$file = $file_storage->create_file_from_pathname($fileinfo, $uploaded_file_path);
o que acontece é que o arquivo é salvo na base de dados, porém quando monto o link url o moodle retorna 'filenotfound'.
Segue a forma que monto o link
$context = context_system::instance();
$url = moodle_url::make_pluginfile_url($context->id, 'component', 'area', 'itemid', '/', 'arquivo.txt');
como podem ver, salvo na area 'private' do component, onde o componente passo o nome do diretório do bloco, e o contesto pego o contesto do sistema.
Fiz algo errado?
ajudme, please.