为了账号安全,请及时绑定邮箱和手机立即绑定

我在PHP中创建了一个FileUploader类,用于验证和上传任何提交的文件。

我在PHP中创建了一个FileUploader类,用于验证和上传任何提交的文件。

PHP
红颜莎娜 2023-10-22 20:45:07
我正在做一个项目,所以我正在编写面向对象的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']}");

    }

}


查看完整回答
反对 回复 2023-10-22
  • 1 回答
  • 0 关注
  • 57 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信