Ejemplo n.º 1
0
 public function replace($id = null)
 {
     if (!get('_csrf') or !csrf(get('_csrf'))) {
         return response::error('unauthenticated access');
     }
     $filename = get('filename');
     $file = $this->file($id, $filename);
     $blueprint = blueprint::find($this->page($id));
     $upload = new Upload($file->root(), array('overwrite' => true, 'accept' => function ($upload) use($file) {
         if ($upload->mime() != $file->mime()) {
             throw new Error(l('files.replace.error.type'));
         }
     }));
     if ($file = $upload->file()) {
         try {
             $this->checkUpload($file, $blueprint);
             kirby()->trigger('panel.file.replace', $file);
             return response::success('success');
         } catch (Exception $e) {
             $file->delete();
             return response::error($e->getMessage());
         }
     } else {
         return response::error($upload->error()->getMessage());
     }
 }
Ejemplo n.º 2
0
 public function upload($username)
 {
     if (!get('_csrf') or !csrf(get('_csrf'))) {
         return response::error('unauthenticated access');
     }
     $user = $this->user($username);
     if (!$user) {
         return response::error(l('users.avatar.error.missing'));
     }
     if (!site()->user()->isAdmin() and !$user->isCurrent()) {
         return response::error('You are not allowed to upload an avatar for this user');
     }
     $root = $user->avatar() ? $user->avatar()->root() : $user->avatarRoot('{safeExtension}');
     $upload = new Upload($root, array('accept' => function ($upload) {
         if ($upload->type() != 'image') {
             throw new Error(l('users.avatar.error.type'));
         }
     }));
     if ($upload->file()) {
         thumb::$defaults['root'] = dirname($upload->file()->root());
         $thumb = new Thumb($upload->file(), array('filename' => $upload->file()->filename(), 'overwrite' => true, 'width' => 256, 'height' => 256, 'crop' => true));
         kirby()->trigger('panel.avatar.upload', $user->avatar());
         return response::success(l('users.avatar.success'));
     } else {
         return response::error($upload->error()->getMessage());
     }
 }
Ejemplo n.º 3
0
 public static function uploadSingle($file, $path, $allow, $max_size = 1000000)
 {
     //判断文件的合法性
     if (!is_array($file) || count($file) != 5) {
         //错误
         self::$error = '上传文件不存在!';
         return false;
     }
     //判断错误代码
     switch ($file['error']) {
         case 1:
             //文件超过服务器允许大小
             self::$error = '文件超过服务器允许的大小,服务器允许的最大值为:' . ini_get('upload_max_filesize');
             return false;
         case 2:
             //文件超过表单允许大小
             self::$error = '文件超过表单允许大小!';
             return false;
         case 3:
             //文件只上传一部分
             self::$error = '文件只上传部分!';
             return false;
         case 4:
             //没有选中要上传的文件
             self::$error = '没有选中要上传的文件';
             return false;
         case 6:
         case 7:
             self::$error = '服务器错误,文件上传失败!';
             return false;
     }
     //判断文件类型是否符合
     if (strpos($allow, $file['type']) === false) {
         //没有匹配到:不允许的类型
         self::$error = '不允许的文件类型:允许的类型有:' . $allow;
         return false;
     }
     //文件大小判断
     if ($file['size'] > $max_size) {
         self::$error = '文件超出当前允许的大小:当前允许的大小为:' . $max_size / 1000000 . 'M';
         return false;
     }
     //移动文件到指定目录
     $new_name = self::getNewName($file['name']);
     if (move_uploaded_file($file['tmp_name'], $path . '/' . $new_name)) {
         //文件移动成功
         return $new_name;
     } else {
         //失败
         self::$error = '文件移动失败!';
         return false;
     }
 }
Ejemplo n.º 4
0
 public function replace($id)
 {
     $filename = get('filename');
     $file = $this->file($id, $filename);
     $upload = new Upload($file->root(), array('overwrite' => true, 'accept' => function ($upload) use($file) {
         if ($upload->mime() != $file->mime()) {
             throw new Error(l('files.replace.error.type'));
         }
     }));
     if ($upload->file()) {
         return response::success('success');
     } else {
         return response::error($upload->error()->getMessage());
     }
 }
Ejemplo n.º 5
0
 public function upload($username)
 {
     $user = $this->user($username);
     if (!$user) {
         return response::error(l('users.avatar.error.missing'));
     }
     $root = $user->avatar() ? $user->avatar()->root() : $user->avatarRoot('{safeExtension}');
     $upload = new Upload($root, array('accept' => function ($upload) {
         if ($upload->type() != 'image') {
             throw new Error(l('users.avatar.error.type'));
         }
     }));
     if ($upload->file()) {
         thumb::$defaults['root'] = dirname($upload->file()->root());
         thumb::$defaults['driver'] = 'im';
         $thumb = new Thumb($upload->file(), array('filename' => $upload->file()->filename(), 'overwrite' => true, 'width' => 256, 'height' => 256, 'crop' => true));
         return response::success(l('users.avatar.success'));
     } else {
         return response::error($upload->error()->getMessage());
     }
 }
Ejemplo n.º 6
0
        $upload = new Upload();
        $upload->set_max_size(1800000);
        $upload->set_directory($filedirectory);
        $upload->set_tmp_name($_FILES['backupfile']['tmp_name']);
        $upload->set_file_size($_FILES['backupfile']['size']);
        $upload->set_file_ext($_FILES['backupfile']['name']);
        $upload->set_file_type($filetype);
        $upload->set_file_name($filename);
        $upload->start_copy();
        if ($upload->is_ok()) {
            $restore = new iam_restore($upload->user_full_name, $cfg_db_host, $cfg_db_name, $cfg_db_user, $cfg_db_pass);
            $restore->perform_restore();
            unlink($upload->user_full_name);
            ShowMsg("数据恢复成功");
        } else {
            ShowMsg($upload->error());
            exit;
        }
    }
}
$adminpagetitle = "数据恢复";
include "admin.header.php";
?>
<div class="main_body">
<form action="dbrestore.php" method="post" enctype="multipart/form-data">
<table class="inputform" cellpadding="1" cellspacing="1">
<tr><td class="label">注意事项</td><td class="input">请选择已经备份的数据,上传后执行!</td></tr>
<tr><td class="label">备份文件</td><td class="input"><input type="file" name="backupfile" /></td></tr>
<tr><td class="label"></td><td class="input">
<input type="hidden" name="action" value="restore" />
<input type="submit" class="subtn" value="马上恢复" /></td></tr>
Ejemplo n.º 7
0
 /**
  * 设置错误信息
  *
  * @param string $error_msg
  * @param number $error_no
  * @return Upload
  */
 protected static function set_error($error_msg, $error_no = 0)
 {
     Upload::$errno = $error_msg;
     Upload::$error = $error_msg;
 }