PHP文件上传问题

问题描述:

我在PHP中编写了一个Facebook应用程序,需要能够允许用户将图像上传到我的服务器。我已经使用此代码:PHP文件上传问题

<?php 
include_once('facebook.php'); 
$appapikey = 'API KEY HERE'; 
$appsecret = 'SECRET KEY HERE'; 
$facebook = new Facebook($appapikey, $appsecret); 
$fb_user = $facebook->require_login(); 

if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) { 
    $filename = basename($_FILES['uploaded_file']['name']); 
    $ext = substr($filename, strrpos($filename, '.') + 1); 
    if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") && 
    ($_FILES["uploaded_file"]["size"] < 350000)) { 
     $newname = dirname(__FILE__).'/upload/zbt_'.$fb_user.'.jpg'; 
     if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) { 
     header("Location: http://majik.zbrowntechnology.info/display.php"); 
     } else { 
     header("Location: home.php?Fatal"); 
     } 
} else { 
    header("Location: home.php?Fatal"); 
    } 
} else { 
header("Location: home.php?Fatal"); 
} 
?> 

但我不能实际上保存文件在目录中。我已经做了一些玩弄代码,并认为问题在于移动文件在这一行:

if((move_uploaded_file($ _ FILES ['uploaded_file'] ['tmp_name'],$ newname))) {...

+0

它是什么样的应用程序?它是iframe/fbml(哪一个?)或第三方应用程序? – zerkms 2010-10-13 05:39:53

+1

你给这个目录的权限? – 2010-10-13 05:42:36

+0

你的表单有哪些'enctype'。它应该是'multipart/form-data' – pltvs 2010-10-13 05:50:58

FBML应用程序并不容易。

首先 - 你有你的形状点到脚本上

<form enctype="multipart/form-data" 
     action="http://your.domain/upload.php" 
     method="post" > 

下一页:任何你想对upload.php你必须处理上传的文件,进程,这样做,之后您需要重定向到facebook.com上的FBML画布应用程序。

+0

这是如何设置应用程序:用户加载FB画布页面。在FB画布页面上,有一个HTML iframe。此iframe包含应用程序的实际功能。 (上传表单)用户选择一个文件,然后点击上传按钮。表单将表单数据POST到上传脚本。该脚本然后重定向到显示页面。所有的重定向都在iframe中完成。 – 2010-10-14 02:36:50

+0

这个工作流程似乎是正确的。那么,调试你的脚本,然后 – zerkms 2010-10-14 02:42:50

+0

我想通了。问题是我用来从Facebook获取当前用户ID的代码。通过不包括该代码来修复它,但在每个URL的末尾添加用户ID。我感谢你们所有人的帮助,并将在信用页面添加欧活名字和个人资料图片!谢谢! – 2010-10-15 03:19:04