如何使用shieldUI上传程序和php实际上传和删除文件?

如何使用shieldUI上传程序和php实际上传和删除文件?,php,uploader,shieldui,Php,Uploader,Shieldui,我正在尝试为网站制作附件模块。以下是附件控制器脚本Attachments.php <?php class Attachments extends Controller { public function __construct(){ } public function index(){ $data = [ 'title' => 'Attachments', 'description' => 'Area

我正在尝试为网站制作附件模块。以下是附件控制器脚本Attachments.php

<?php
  class Attachments extends Controller {
    public function __construct(){

    }

    public function index(){
      $data = [
        'title' => 'Attachments',
        'description' => 'Area for attachments and uploads'
      ];

      $this->loadView('attachments/index', $data);
    }


    public function save(){
      $data = [
        'title' => 'Attachments',
        'description' => 'Area for attachments and uploads'
      ];
        $fileName = $_FILES['file']['name'];
        $fileTmpName = $_FILES['file']['tmp_name'];
        $fileSize = $_FILES['file']['size'];
        $fileError = $_FILES['file']['error'];
        $fileType = $_FILES['file']['type'];
        $fileExt = explode('.', $fileName);
      $fileActualExt = strtolower(end($fileExt));
        $fileNameNew = uniqid('',true).".".$fileActualExt;
        $fileDestination = '/app/attachments/'.$fileNameNew;
       if(move_uploaded_file($fileTmpName, $fileDestination)){
           return true;
       } else{
           return false;
       }
    }

public function remove($files){
      $data = [
        'title' => 'Attachments',
        'description' => 'Area for attachments and uploads'
      ];

            foreach($files as $file){
                $fileName = $file['fileName'];
                $filetoDel = $_SERVER['DOCUMENT_ROOT'] . '/app/attachments/' .$fileName;
            if (file_exists($filetoDel)) {
                unlink($file);
            } else {
                // File not found.
            }

            }
          }

  }

jQuery(函数($){ $(“#文件”).shieldUpload({ 异步:{ 启用:对, 保存:{ url:“/attachments/save” }, 删除:{ url:“/attachments/remove” } } }); });
脚本、css和引导在/views/inc/header.php/views/inc/footer.php文件中引用

save url应该触发函数save as/attachments/save url告诉引导加载程序查找attachments.php并加载函数save()

是否有一种方法可以调试它,因为在测试它时没有保存任何文件,但它似乎运行脚本

几个星期以来,我一直在绞尽脑汁想办法让这项工作也能顺利进行。我只是不能使用shieldui一个简单的,但我想使用sheildUI一个管理多个文件。另外,因为我支付了开发者许可证的费用,所以我宁愿尽可能多地使用这些工具

我在Youtube上搜索过,他们似乎都喜欢我在save函数下上传单个文件的代码,从文档中,shield UI组件一次传递一个文件,调用每个文件的save函数

--我已经设法让它工作如下所述,上传文件。但是,我使用的是$\u文件数组。这是正确的还是我应该一次从shieldUI传递一个文件。我不知道怎么做?我现在正在努力寻找删除文件的方法


提前非常感谢您的帮助。

我走开了,睡了一觉,然后又回到这里。我想我不需要每行都有索引文件。我还需要在目标文件的路径中使用../而不是/。控制器中的“保存”功能现在如下所示:

public function save(){
      $data = [
        'title' => 'Attachments',
        'description' => 'Area for attachments and uploads'
      ];

            foreach($_FILES as $file){
                $fileName = $file['name'];
                $fileTmpName = $file['tmp_name'];
                $fileSize = $file['size'];
                $fileError = $file['error'];
                $fileType = $file['type'];
                $fileExt = explode('.', $fileName);
                $fileActualExt = strtolower(end($fileExt));
                $fileNameNew = uniqid('',true).".".$fileActualExt;
                $fileDestination = '../app/attachments/'.$fileNameNew;
                   if(move_uploaded_file($fileTmpName, $fileDestination)){
                      return true;
                   } else{
                       return false;
                   }

            }

    }
public function save(){
      $data = [
        'title' => 'Attachments',
        'description' => 'Area for attachments and uploads'
      ];

            foreach($_FILES as $file){
                $fileName = $file['name'];
                $fileTmpName = $file['tmp_name'];
                $fileSize = $file['size'];
                $fileError = $file['error'];
                $fileType = $file['type'];
                $fileExt = explode('.', $fileName);
                $fileActualExt = strtolower(end($fileExt));
                $fileNameNew = uniqid('',true).".".$fileActualExt;
                $fileDestination = '../app/attachments/'.$fileNameNew;
                   if(move_uploaded_file($fileTmpName, $fileDestination)){
                      return true;
                   } else{
                       return false;
                   }

            }

    }