本文整理汇总了PHP中phpbb\request\request_interface::file方法的典型用法代码示例。如果您正苦于以下问题:PHP request_interface::file方法的具体用法?PHP request_interface::file怎么用?PHP request_interface::file使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类phpbb\request\request_interface
的用法示例。
在下文中一共展示了request_interface::file方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handle_upload
/**
* Handle upload.
*/
protected function handle_upload()
{
$upload = $this->request->file($this->form_name);
if ($upload['name'] != 'none' && trim($upload['name'])) {
// Try uploading the file.
$this->upload_file();
// Store for easier access
$this->errors = array_merge($this->errors, $this->filedata['error']);
// If we had no problems we can submit the data to the database.
if (empty($this->filedata['error'])) {
$order_id = $this->set_custom_order ? $this->operator->get_max_custom_index() + 1 : 0;
$data = array('attachment_id' => 0, 'physical_filename' => $this->filedata['physical_filename'], 'attachment_directory' => $this->filedata['attachment_directory'], 'real_filename' => $this->filedata['real_filename'], 'extension' => $this->filedata['extension'], 'mimetype' => $this->filedata['mimetype'], 'filesize' => $this->filedata['filesize'], 'filetime' => $this->filedata['filetime'], 'hash' => $this->filedata['md5_checksum'], 'attachment_order' => $order_id, 'attachment_comment' => $this->request->variable('filecomment', '', true), 'object_type' => $this->object_type, 'object_id' => $this->object_id);
$attachment = $this->operator->get_new_entity($data);
// Create thumbnail
$has_thumbnail = $is_preview = false;
if ($this->filedata['is_image']) {
$has_thumbnail = $attachment->create_thumbnail($this->max_thumbnail_width, $this->max_thumbnail_width === false ? false : 0);
// set first screenshot as preview image when it is uploaded
$is_preview = !$this->operator->get_count();
}
$attachment->__set_array(array('thumbnail' => $has_thumbnail, 'is_preview' => $is_preview));
$attachment->submit();
// Store in operator
$this->operator->set($attachment);
$this->uploaded = $attachment->get_id();
}
}
// We do not want to upload it again if this function is called again.
$this->request->overwrite($this->form_name, null, request_interface::FILES);
}
示例2: integrate_uploaded_file
/**
* Checks whether the chunk we are about to deal with was actually uploaded
* by PHP and actually exists, if not, it generates an error
*
* @param string $form_name The name of the file in the form data
*
* @return null
*/
protected function integrate_uploaded_file($form_name, $chunk, $file_path)
{
$is_multipart = $this->is_multipart();
$upload = $this->request->file($form_name);
if ($is_multipart && (!isset($upload['tmp_name']) || !is_uploaded_file($upload['tmp_name']))) {
$this->emit_error(103, 'PLUPLOAD_ERR_MOVE_UPLOADED');
}
$tmp_file = $this->temporary_filepath($upload['tmp_name']);
if (!phpbb_is_writable($this->temporary_directory) || !move_uploaded_file($upload['tmp_name'], $tmp_file)) {
$this->emit_error(103, 'PLUPLOAD_ERR_MOVE_UPLOADED');
}
$out = fopen("{$file_path}.part", $chunk == 0 ? 'wb' : 'ab');
if (!$out) {
$this->emit_error(102, 'PLUPLOAD_ERR_OUTPUT');
}
$in = fopen($is_multipart ? $tmp_file : 'php://input', 'rb');
if (!$in) {
$this->emit_error(101, 'PLUPLOAD_ERR_INPUT');
}
while ($buf = fread($in, 4096)) {
fwrite($out, $buf);
}
fclose($in);
fclose($out);
if ($is_multipart) {
unlink($tmp_file);
}
}
示例3: form_upload
/**
* Form upload method
* Upload file from users harddisk
*
* @param string $form_name Form name assigned to the file input field (if it is an array, the key has to be specified)
*
* @return filespec $file Object "filespec" is returned, all further operations can be done with this object
* @access public
*/
protected function form_upload($form_name)
{
$upload = $this->request->file($form_name);
unset($upload['local_mode']);
$result = $this->plupload->handle_upload($form_name);
if (is_array($result)) {
$upload = array_merge($upload, $result);
}
/** @var filespec $file */
$file = $this->factory->get('filespec')->set_upload_ary($upload)->set_upload_namespace($this->upload);
if ($file->init_error()) {
$file->error[] = '';
return $file;
}
// Error array filled?
if (isset($upload['error'])) {
$error = $this->upload->assign_internal_error($upload['error']);
if ($error !== false) {
$file->error[] = $error;
return $file;
}
}
// Check if empty file got uploaded (not catched by is_uploaded_file)
if (isset($upload['size']) && $upload['size'] == 0) {
$file->error[] = $this->language->lang($this->upload->error_prefix . 'EMPTY_FILEUPLOAD');
return $file;
}
// PHP Upload file size check
$file = $this->check_upload_size($file);
if (sizeof($file->error)) {
return $file;
}
// Not correctly uploaded
if (!$file->is_uploaded()) {
$file->error[] = $this->language->lang($this->upload->error_prefix . 'NOT_UPLOADED');
return $file;
}
$this->upload->common_checks($file);
return $file;
}
示例4: avatar_upload_move_file
public function avatar_upload_move_file($event)
{
if (!sizeof($event['error'])) {
$row = $event['row'];
/** Ignore */
if ($row['id'] != $this->user->data['user_id']) {
return false;
}
$upload_file = $this->request->file('avatar_upload_file');
if (!empty($upload_file['name'])) {
if ($result = $this->resize->avatar_upload_resize($row)) {
// Success! Lets save the result in the database
$result = array('user_avatar_type' => AVATAR_UPLOAD, 'user_avatar' => $result['avatar'], 'user_avatar_width' => $result['avatar_width'], 'user_avatar_height' => $result['avatar_height']);
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $this->db->sql_build_array('UPDATE', $result) . '
WHERE user_id = ' . (int) $this->user->data['user_id'];
$this->db->sql_query($sql);
meta_refresh(3, build_url());
$message = $this->user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($this->user->lang['RETURN_PAGE'], '<a href="' . build_url() . '">', '</a>');
trigger_error($message);
}
}
}
}