我创建了一个页面,加载后会在ftp服务器上将文件从一个文件夹移动到另一个文件夹。我希望在完成后闪烁一条消息。但我正在使用Session :: flash,但它不起作用。如果我错了,请检查代码段并纠正我。文件正在正常移动。
test.blade.php
$(document).ready(function(){
$(window).load(function(){
$.ajax({
type: 'POST',
url: '{{url('/ftp')}}',
success: function(data) {
alert(data);
console.log(data);
}
});
});
});
TestController.php
function ftp()
{
$ftp_server;
$ftp_username;
$ftp_userpass;
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
// $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
if (@ftp_login($ftp_conn, $ftp_username, $ftp_userpass))
{
echo "Connection established.<br>";
$path = "./test";
$file = "ftp_test.txt";
$file_list = ftp_nlist($ftp_conn,$path);
if(in_array($file,$file_list))
{
$old_path="./test/ftp_test.txt.";
$new_path="./test1/ftp_test.txt";
if(ftp_rename($ftp_conn,$old_path,$new_path))
{
echo "File moved from $old_path to $new_path.<br>";
Session::flash('success','File moved from a to b');
}
else {
echo "File not moved.";
}
}
else
{
$old_path="./test1/ftp_test.txt.";
$new_path="./test/ftp_test.txt";
if(ftp_rename($ftp_conn,$old_path,$new_path))
{
echo "File moved from $old_path to $new_path.<br>";
Session::flash('success','File moved from b to a');
}
else {
echo "File not moved.";
}
}
}
else
{
echo "Couldn't establish a connection.<br>";
}
// close connection
ftp_close($ftp_conn);
}
}
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
:
$(document).ready(function(){
$(window).load(function(){
$.ajax({
type: 'POST',
url: '{{url('/ftp')}}',
success: function(data) {
$('#message').text(data);
console.log(data);
}
});
});
});
控制器
function ftp()
{
$ftp_server;
$ftp_username;
$ftp_userpass;
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
// $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
if (@ftp_login($ftp_conn, $ftp_username, $ftp_userpass))
{
echo "Connection established.<br>";
$path = "./test";
$file = "ftp_test.txt";
$file_list = ftp_nlist($ftp_conn,$path);
if(in_array($file,$file_list))
{
$old_path="./test/ftp_test.txt.";
$new_path="./test1/ftp_test.txt";
if(ftp_rename($ftp_conn,$old_path,$new_path))
{
echo "File moved from $old_path to $new_path.<br>";
}
else {
echo "File not moved.";
}
}
else
{
$old_path="./test1/ftp_test.txt.";
$new_path="./test/ftp_test.txt";
if(ftp_rename($ftp_conn,$old_path,$new_path))
{
echo "File moved from $old_path to $new_path.";
}
else {
echo "File not moved.";
}
}
}
else
{
echo "Couldn't establish a connection.<br>";
}
// close connection
ftp_close($ftp_conn);
}
}
我所拥有的只是删除了你的会话内容。在您的刀片中创建一个名为message
的ID(要显示消息的位置)的元素,然后将其附加到结果中。请注意,您的结果必须只是文本,当您在php脚本中回显时,ajax会将这些文本输出作为数据并返回给您。您可以根据需要设置消息元素的样式。
如果您计划以html数据的形式返回,请使用$('#message').html(data);
代替$('#message').text(data);
答案 1 :(得分:0)
正如@kerbholz所说,如果您需要使用Session :: flash显示消息,则无法使用 ajax
以下是显示flash消息的方法
Session::flash('success', 'It\'s a flash message !');
return redirect()->back();
@if (Session::has('success'))
<div class="alert alert-success">{{ Session::get('success') }}</div>
@endif