Php 在laravel中创建文件夹

Php 在laravel中创建文件夹,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我无法让用户通过ajax请求>路由>在Laravel4中创建文件夹controller@method. 我对url调用权限方法测试了ajax成功请求。 当我使用mkdir或File::mkdir($path)时(此方法存在吗?),我将得到响应加载资源失败:服务器响应状态为500(内部服务器错误)且无法创建新文件夹。。如何解决 route.php Route::post('admin/article/addimagegallery', 'AdminDashboardController@addIm

我无法让用户通过ajax请求>路由>在Laravel4中创建文件夹controller@method.
我对url调用权限方法测试了ajax成功请求。
当我使用
mkdir
File::mkdir($path)时(此方法存在吗?),我将得到响应
加载资源失败:服务器响应状态为500(内部服务器错误)
且无法创建新文件夹。。如何解决

route.php

Route::post('admin/article/addimagegallery', 'AdminDashboardController@addImagegallery');
AdminDashboardController

public function addImagegallery()
{
    if (Request::ajax())
    {
        …
        $galleryId = 1; // for test
        $path = public_path().'/images/article/imagegallery/'.$galleryId;
        File::mkdir($path);
    }
}
js

不,实际上是

File::makeDirectory($path);
此外,您可以尝试以下方法:

$path = public_path().'/images/article/imagegallery/' . $galleryId;
File::makeDirectory($path, $mode = 0777, true, true);
更新:实际上它确实有效,
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);
    }
}
用于删除:

public function deleteDirectory($directory, $preserve = false);
在以下路径(在本地安装中)检查源:

root/vendor/laravel/framework/src/illumb/Filesystem/Filesystem.php


多亏了阿尔法。你的回答对我很有帮助,这里有一个laravel 5的方法可以帮助那些使用更高版本的人:

Storage::disk('local')->makeDirectory('path/to');
这将在
storage/app/path/to

检索刚创建的目录:

storage_path('app/path/to')

您可以使用多个参数

可以使用默认值创建目录

$result = File::makeDirectory('/path/to/directory');
如果能够在/path/to目录中创建目录,则返回true。创建目录的文件模式为0777

您可以指定模式

$result = File::makeDirectory('/path/to/directory', 0775);
如果能够在/path/to目录中创建目录,则返回true。创建目录的文件模式将为0775

您还可以递归地创建目录

$result = File::makeDirectory('/path/to/directory', 0775, true);

您可以尝试以下代码:-

use Illuminate\Support\Facades\File;

if (! File::exists("your-path")) {
    File::makeDirectory("your-path");
}

对于使用文件,这是use\lightlight\Support\Facades\File

非常感谢!链接是404,但我发现这个
https://github.com/laravel/framework/blob/master/src/Illuminate/Filesystem/Filesystem.php
哦,不!我的意思是在你的系统中,
根目录
代表你安装的根目录,但是你还是做了,欢迎:-)@WereWolf TheAlpha在创建文件夹之前我如何知道文件夹是否存在?@zhelon:if(!File::exists($path)){File::makeDirectory($path);}谢谢你提供的信息。在Plesk Ubuntu服务器上使用我的应用程序节省了我很多时间,但一个小建议是在web应用程序中使用0755而不是0777。你可能会对在已经可写的文件夹中创建图像感兴趣。你知道为什么在西里尔文上写新目录时,在文件系统中,目录名如下所示:可能是因为字体和/或编码问题。类似于
use Illuminate\Support\Facades\File;

if (! File::exists("your-path")) {
    File::makeDirectory("your-path");
}