Php Laravel文件系统和ftp
我在使用Laravel的文件系统时遇到了困难。我试图在控制器中生成、保存和传输xml文件 除了ftp传输之外,其他一切都可以工作。我怀疑这是因为我无法在sendFilToNCS($fileName)函数中获得新xml文件的正确路径。我收到这个错误: ErrorException ftp_put(/storage/1584533245.xml):无法打开 流:没有这样的文件或目录 希望能从拉雷维尔的专家那里得到som的帮助。你好Php Laravel文件系统和ftp,php,laravel,ftp,filesystems,Php,Laravel,Ftp,Filesystems,我在使用Laravel的文件系统时遇到了困难。我试图在控制器中生成、保存和传输xml文件 除了ftp传输之外,其他一切都可以工作。我怀疑这是因为我无法在sendFilToNCS($fileName)函数中获得新xml文件的正确路径。我收到这个错误: ErrorException ftp_put(/storage/1584533245.xml):无法打开 流:没有这样的文件或目录 希望能从拉雷维尔的专家那里得到som的帮助。你好 class ExportController extends Con
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;
}
}
不做任何更改的Storage facade会将您的文件放入
存储/app
。我看不出以后移动文件有什么意义。您可以将文件放入存储/app/xml
中,以便于查看。这是可以这样得到的
$fileName = '/xml/' . $fileName;
Storage::put($fileName, $content);
当您想要获取文件路径时,storage facade有一个帮助器。它将返回绝对路径,您需要使用ftp\u put()
似乎您使用的ftp\u put()
错误。第三个参数是文件的路径,请使用新定义的$path
属性
ftp_put($ftp_conn, $fileName, $path, FTP_ASCII)
这段代码中有很多方面,但这似乎是最明显的错误,我不确定它是否能帮助您完成整个过程,但应该能帮助您进入过程的下一步
ftp_put($ftp_conn, $fileName, $path, FTP_ASCII)