我有一个网站example.com,人们可以上传图片。但我希望将这些图像保存在我的无Cookie域examplestatic.com中。所以,我写道:
move_uploaded_file($_FILES['image1']['tmp_name'], $folder_temp .$image_path_1 );
文件夹temp是: www.examplestatic.com/image_folder/big_images
但是,我收到错误,它无法移动文件。我曾经让它将上传的文件移动到同一域中的文件夹,它可以工作。但是因为我将$ folder_temp的目录更改为新的静态域,所以它不再起作用了。如何允许用户跨域上传文件?
谢谢!
答案 0 :(得分:0)
我会将上传的文件移动到服务器上的文件夹中,然后更改您的Web服务器配置,让您的其他域指向可以访问该文件夹的目录。
答案 1 :(得分:0)
我找到了解决方案:
它使用php通过FTP上传文件。代码如下:
$ftp_server = "server";
$ftp_username = "username";
$ftp_password = "password";
$connection = ftp_connect($ftp_server) or die("could not connect to $ftp_server");
if(@ftp_login($connection, $ftp_username, $ftp_password))
{ ftp_put($connection, $folder_destination, $location_original_file, FTP_BINARY) or die("could not find directory");
} else { }
ftp_close($connection);
我花了很长时间才弄清楚出现的意外错误。所以要记住一些事情:
1)确保$ folder_destination是分配给您创建的ftp用户的文件夹中的目录。
2)$location_original_file
必须是图片保存的目录(您在php代码中引用图片的目录)。
3)FTP_ASCII不适用于图片。它必须是FTP_BINARY(至少它FTP_ASCII对我不起作用);最后,确保您使用ftp访问的所有文件夹都具有可写权限
4)由于某些原因,ftp_put无法读取上传的文件。我不知道为什么。就像我打开ftp连接一样,它丢失了用户上传的文件。所以,我做的是首先将文件保存在同一域中的目录中,甚至在打开ftp连接之前(我最后这样做),然后我将保存的文件移动到另一个域。我需要移动修改的上传图片的几个版本,以便我首先完成所有修改,将修改后的版本保存在同一个域中,然后将所有这些保存的文件移动到新域中的相应目录。
就是这样。