PHP - 将上传的图像保存到服务器
我试图将使用PHP从iPhone上传的图像保存到服务器。我正在使用ASIHTTPRequest处理数据请求。这是我的iPhone代码:PHP - 将上传的图像保存到服务器
[request setPostValue:someString forKey:@"string1"];
[request setPostValue:anotherString forKey:@"string2"];
[request addData:[NSData dataWithData:UIImageJPEGRepresentation(anImage, 0.9)]
withFileName:@"img.jpg" andContentType:@"image/jpeg" forKey:@"img"];
[request startSynchronous];
在服务器端,我使用目前这个PHP代码,试图将图像保存到一个文件夹,我的服务器上:
print_r($_FILES);
$folder = 'upload/';
$image_path = basename($_FILES['img']['name']);
echo $folder . $image_path . "\n";
if (move_uploaded_file($_FILES['img']['tmp_name'], $folder . $image_path)) {
echo 'ok!';
}
else {
echo 'fail !';
}
琴弦上传就好了当我print_r()
我看到图像数组的内容,因为我期望,但由于某种原因,当试图保存图像,我越来越“失败!”打印到控制台。这里有什么问题?
谢谢。
尝试之前,你下面的步骤将您的图像
if(!is_dir($folder))
{
echo "Folder does not exist" ;
if(!mkdir($folder))
{
echo "Attempt to create folder failed" ;
}
}
else if(!is_writable($folder))
{
echo "Folder nto writeable" ;
if(!chmod($folder, 0755))
{
echo "Attempt to make writeable failed" ;
}
}
else {
if (move_uploaded_file($_FILES['img']['tmp_name'], $folder . $image_path)) {
echo 'ok!';
}
else {
echo 'fail !';
}
}
你明白了什么???
感谢您的代码。我加了它,我就ok了!但是当我打开服务器上的文件夹时,它是空的。 – 2012-02-24 00:34:47
这与ehudokai关于使用'realpath($文件夹)'的建议结合起来了。谢谢! – 2012-02-24 01:19:15
随时欢迎您:) – Baba 2012-02-25 02:27:52
还请记住对正在上传的文件进行安全检查。例如,根据白名单(jpeg,png,gif等)检查文件类型 - 我确定您不希望某人能够将脚本上传到您的网站?
也为长期,你会过得更好手动创建上传文件夹,并设置相应的权限反对具有PHP脚本为你做..
是的,这实际上是我最终做的。 – 2012-02-24 16:05:21
在哪个服务器,你存储图像?你有权写入该文件夹吗? – 2012-02-24 00:08:12
看到编辑下面 – 2012-02-24 00:38:04
看起来像你正在使用相对上升的路径。尝试echo realpath($ folder);确保您将它上传到您认为正在上传的位置。 – ehudokai 2012-02-24 00:44:21