【问题标题】:Laravel filesystem and ftpLaravel 文件系统和 ftp
【发布时间】:2020-03-18 12:16:53
【问题描述】:

我很难使用 Laravel 的文件系统。我正在尝试在控制器中生成、保存和传输 xml 文件。

除了 ftp 传输之外的一切都有效。我怀疑这是因为我无法在 sendFilToNCS($fileName) 函数中获得新 xml 文件的正确路径。我收到此错误:

ErrorException ftp_put(/storage/1584533245.xml): 未能打开 流:没有这样的文件或目录

希望能得到 laravel 专家的帮助。美好的一天。

class ExportController extends Controller
{

    public function __construct(){
        $this->middleware('auth:admin');
    }

    public function index($id){

        $foromtale = Foromtale::find($id);
        $data = new NCSNote($foromtale);

        $xml = View::make('xmlTemplate')->with('view', $data);

        $xmlDoc = simplexml_load_string($xml);

        return $this->writeXml($xmlDoc);
    }

    public function writeXml($content){

        $fileName = time().".xml";
        //$content->saveXML($fileName);
        Storage::put($fileName, $content);
        Storage::move($fileName, 'storage/'.$fileName);

        return $this->sendFilToNCS($fileName);           

    }

    private function sendFilToNCS($fileName)
    {
        $content = Storage::disk('local')->url($fileName);
        $ftp_server = "ftp.host.dk";
        $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
        $login = ftp_login($ftp_conn, "username", "xXxxXX");

        // upload file
        if (ftp_put($ftp_conn, $fileName, $content, FTP_ASCII))
          {
          // close connection
          ftp_close($ftp_conn);

          return true;
        }
        // close connection
        ftp_close($ftp_conn);
        return false;

    }
}

【问题讨论】:

    标签: php laravel ftp filesystems


    【解决方案1】:

    没有任何更改的存储外观会将您的文件放入storage/app。我没有看到之后移动文件的意义。成像您会将您的文件放在storage/app/xml 中以便于查看。可以这样获取。

    $fileName = '/xml/' . $fileName;
    Storage::put($fileName, $content);
    

    当你想获取文件路径时,存储门面有一个帮助器。这将返回绝对路径,您需要ftp_put()

    $path = Storage::path($fileName)
    

    好像你用错了ftp_put()。第三个参数是文件的路径,使用新定义的$path属性。

    ftp_put($ftp_conn, $fileName, $path, FTP_ASCII)
    

    这段代码有很多方面,但这似乎是最明显的错误,我不确定它是否能帮助你完成整个过程,但应该能让你进入过程的下一步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-18
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 2010-12-03
      • 2021-09-17
      • 2015-10-07
      相关资源
      最近更新 更多