use*_*888 21 php ajax jquery laravel
我有问题让用户通过ajax request> route> controller @ method在laravel 4中创建文件夹.
我测试了对url调用权限方法的ajax成功请求.
当我使用mkdir
或File::mkdir($path);
(这种方法存在吗?)时,我会得到响应Failed to load resource: the server responded with a status of 500 (Internal Server Error)
而无法创建新文件夹..如何解决?
route.php
Route::post('admin/article/addimagegallery', 'AdminDashboardController@addImagegallery');
Run Code Online (Sandbox Code Playgroud)
AdminDashboardController
public function addImagegallery()
{
if (Request::ajax())
{
…
$galleryId = 1; // for test
$path = public_path().'/images/article/imagegallery/'.$galleryId;
File::mkdir($path);
}
}
Run Code Online (Sandbox Code Playgroud)
JS
$.ajax({
url: 'addimagegallery',
type: 'POST',
data: {addimagegallery: 'addimagegallery'},
})
.done(function(response) {
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
The*_*pha 58
不,实际上是
File::makeDirectory($path);
Run Code Online (Sandbox Code Playgroud)
另外,你可以试试这个:
$path = public_path().'/images/article/imagegallery/' . $galleryId;
File::makeDirectory($path, $mode = 0777, true, true);
Run Code Online (Sandbox Code Playgroud)
更新:实际上它确实有效,mkdir
正在幕后使用.这是来源:
/**
* Create a directory.
*
* @param string $path
* @param int $mode
* @param bool $recursive
* @param bool $force
* @return bool
*/
public function makeDirectory($path, $mode = 0777, $recursive = false, $force = false)
{
if ($force)
{
return @mkdir($path, $mode, $recursive);
}
else
{
return mkdir($path, $mode, $recursive);
}
}
Run Code Online (Sandbox Code Playgroud)
删除:
public function deleteDirectory($directory, $preserve = false);
Run Code Online (Sandbox Code Playgroud)
检查以下路径的源(在本地安装中):
根/供应商/ laravel /框架/ SRC /照亮/文件系统/ Filesystem.php
Joh*_*olf 10
感谢The Alpha.你的回答对我有帮助,这是一个laravel 5方法,为使用更高版本的人做到这一点:
Storage::disk('local')->makeDirectory('path/to');
Run Code Online (Sandbox Code Playgroud)
这将创建一个目录 storage/app/path/to
检索刚刚创建的目录:
storage_path('app/path/to')
Run Code Online (Sandbox Code Playgroud)
您可以使用多个参数.
您可以使用默认值创建目录.
$result = File::makeDirectory('/path/to/directory');
Run Code Online (Sandbox Code Playgroud)
如果能够在/ path/to目录中创建目录,则返回true.创建目录的文件模式为0777.
您可以指定模式.
$result = File::makeDirectory('/path/to/directory', 0775);
Run Code Online (Sandbox Code Playgroud)
如果能够在/ path/to目录中创建目录,则返回true.创建目录的文件模式为0775.
您还可以递归创建目录.
$result = File::makeDirectory('/path/to/directory', 0775, true);
Run Code Online (Sandbox Code Playgroud)
你可以试试这个代码:-
use Illuminate\Support\Facades\File;
if (! File::exists("your-path")) {
File::makeDirectory("your-path");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62164 次 |
最近记录: |