我正在创建一个facebook,我已经在普通的PHP程序中使用了上传图像代码几次。我现在在facebook app中使用它。这是我的代码
$image=clean($_FILES['image']['name']);
echo '<h1>Got it</h1>'.$image;
//if it is not empty
if (isset($_FILES))
{
//get the original name of the file from the clients machine
$filename = stripslashes($_FILES['image']['name']);
echo '<h1>Got it 2</h1>'.$filename;
//get the extension of the file in a lower case format
$extension = getExtension($filename);
$extension = strtolower($extension);
//if it is not a known extension, we will suppose it is an error and
// will not upload the file,
//otherwise we will do more tests
if (($extension != "jpg") && ($extension != "jpeg") && ($extension !=
"png") && ($extension != "gif"))
{
//print error message
echo '<h1>Unknown extension!</h1>'.$filename.'hi';
$errors=1;
}
else
{
//get the size of the image in bytes
//$_FILES['image']['tmp_name'] is the temporary filename of the file
//in which the uploaded file was stored on the server
$size=filesize($_REQUEST['image']['tmp_name']);
//compare the size with the maxim size we defined and print error if bigger
if ($size > MAX_SIZE*1024)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}
//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images
//folder)
$newname="images/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_REQUEST['image']['tmp_name'], $newname);
if (!$copied)
{
echo '<h1>Copy unsuccessfull!</h1>';
$errors=1;
$newname="copy";
}}}
这是我的HTML代码。这显然是在
之内<td><label for="image">Image</td>
<td><input type="file" id="image" name="image" ></td>
问题是我总是收到错误“Unknown Extension”,如果我使用$_REQUEST
而不是$_FILES
,那么我只能看到上传文件名的第一个字母。
PS:问题不在于GetExtention功能。问题在于$_FILES['image']['name'])
内容
谁能告诉我我失踪了什么。过去2个小时我都陷入困境。
谢谢
答案 0 :(得分:2)
请确保在使用文件上传时,您必须在表单标记中使用enctype="multipart/form-data"
。
希望对你有所帮助。