我正在做一个项目,所以我正在编写面向对象的PHP。因此,我创建了一个名为FileUploader的类。此类具有验证文件大小和文件扩展名类型以及创建目录(如果不存在)的所有方法。 一切正常,但我注意到它只创建空目录,不会移动上传的文件。我尝试从存储的属性访问文件错误,但它总是给出 0 作为错误代码然后我有另一个 php 脚本,我通过使用 $_FILES 变量进程实例化 FileUploader 类来处理上传的文件.php require_once "../vendor/autoload.php"; use Utility\Classes\FileUploader; //Instantiate new FileUploader with the files to be uploaded. $LogoUploader = new FileUploader($_FILES['logo'], ['.png', '.jpg']);//validate logo size and type - Upload to folder if everything Ok $logo_validated = $LogoUploader->validate();//upload files that passed validation if ($logo_validated) { $LogoUploader->set_target($location); $LogoUploader->set_backlink_step('../'); $ltarget = $LogoUploader->upload_file(); if (!$ltarget) { //upload error print_error($LogoUploader->get_error_msg()); exit; } else { //upload success print "Logo uploaded successfully"; } } else { //validation error print_error($LogoUploader->get_error_msg()); exit; }请问我做错了什么??一切正常,验证工作正常,用户可以设置上传目标,如果不存在,则将创建它,但它不会将文件上传到创建的目录或我的工作目录中的其他任何地方
1 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
我认为您需要更改以下行
if (move_uploaded_file($this->tmp_file_name, $target)) {
自
if (move_uploaded_file( $this->get_tmp_name(), $target )) {
在方法中。结婚upload_file
public function upload_file(){
$this->create_dir();
$target = $this->backlink_step . $this->target_location . "/" . $this->get_file_name();
if (move_uploaded_file( $this->get_tmp_name(), $target )) {
return $target;
} else {
die("tmp_name: {$this->get_tmp_name()} \n target: {$target} \n Error: {$this->File['error']}");
}
}
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消