如何使用shieldUI上传程序和php实际上传和删除文件?
我正在尝试为网站制作附件模块。以下是附件控制器脚本Attachments.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
<?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;
}
}
}