2012-04-05 89 views
-2

我真的搜索了所有的网站,并试图使用GD getimagesize功能,但没有希望 请我想设置最小和最大的图像宽度和高度上传..如果不等于然后显示错误; 这里是原代码:定义上传图像的最大和最小宽度的高度

<?php 
$page = "user_editprofile_photo"; 
include "header.php"; 
$task = (isset($_POST['task']) ? $_POST['task'] : NULL); 
// CHECK FOR ADMIN ALLOWANCE OF PHOTO 
if(!$user->level_info['level_photo_allow']) 
{ 
    header("Location: user_home.php"); 
    exit(); 
} 
// SET ERROR VARIABLES 
$is_error = 0; 
// DELETE PHOTO 
if($task == "remove") 
{ 
    $user->user_photo_delete(); 
    $user->user_lastupdate(); 
    exit(); 
} 
// UPLOAD PHOTO 
if($task == "upload") 
{ 
    $user->user_photo_upload("photo"); 
    $is_error = $user->is_error; 
    if(!$is_error) 
    { 
    // SAVE LAST UPDATE DATE 
    $user->user_lastupdate(); 
    // DETERMINE SIZE OF THUMBNAIL TO SHOW IN ACTION 
    $photo_width = $misc->photo_size($user->user_photo(), "100", "100", "w"); 
    $photo_height = $misc->photo_size($user->user_photo(), "100", "100", "h"); 

    // INSERT ACTION 
    $action_media = Array(Array('media_link'=>$url->url_create('profile', $user->user_info['user_username']), 'media_path'=>$user->user_photo(), 'media_width'=>$photo_width, 'media_height'=>$photo_height)); 
    $actions->actions_add($user, "editphoto", Array($user->user_info['user_username'], $user->user_displayname), $action_media, 999999999, TRUE, "user", $user->user_info['user_id'], $user->user_info['user_privacy']); 
    } 
} 

// GET TABS TO DISPLAY ON TOP MENU 
$field = new se_field("profile", $user->profile_info); 
$field->cat_list(0, 0, 0, "profilecat_id='{$user->user_info['user_profilecat_id']}'"); 
$cat_array = $field->subcats; 


// ASSIGN VARIABLES AND INCLUDE FOOTER 
$smarty->assign('is_error', $is_error); 
$smarty->assign('cats', $cat_array); 
include "footer.php"; 
?> 

这里我补充一下:

if($task == "upload") 
$photo=$user->user_photo(); 
{ 
list($img_width, $img_height, $img_type, $attrs)=getimagesize($photo); 
    if($img_width >= 193 && $img_height >= 290) 
    $user->user_photo_upload("photo"); 
    $is_error = $user->is_error; 
    if(!$is_error) 

1这样:

if($task == "upload")$photo = $user->user_photo(); 
    { $user->user_photo_upload("photo"); 

没有图像会不惜一切.....

上传

2-以这种方式:

if($task == "upload"){ 
$user->user_photo_upload("photo"); 
$photo = $user->user_photo(); 

没有效果,它甚至可以上传16像素的图像。 谢谢 如果你能帮忙,我会很感激。

+2

您可以尝试格式化该代码,以帮助我们帮助您! – gosukiwi 2012-04-05 17:38:25

+0

我试了,但编辑..总是给我错误不符合我们的规则。 – Sanshiro 2012-04-05 17:43:44

回答

2

它看起来像你的if($task == "upload")是不完全包括你想要它。如果你多一点人类可读的格式看代码:

<?php 
$task = (isset($_POST['task']) ? $_POST['task'] : NULL); 
$is_error = 0; 
if($task == "remove") 
{ 
    $user->user_photo_delete(); 
    $user->user_lastupdate(); 
    exit(); 

} 
if($task == "upload") $photo = $user->user_photo(); 
{ 
    list($img_width, $img_height, $img_type, $attrs) = getimagesize($photo); 
    if($img_width >= 193 && $img_height >= 290) $user->user_photo_upload("photo"); 
    $is_error = $user->is_error; 
    if(!$is_error) 
    { 
     $user->user_lastupdate(); 
     $photo_width = $misc->photo_size($user->user_photo(), "100", "100", "w"); 
     $photo_height = $misc->photo_size($user->user_photo(), "100", "100", "h"); 
     $action_media = array(array('media_link' => $url->url_create('profile', $user->user_info['user_username']), 'media_path' => $user->user_photo(), 'media_width' => $photo_width, 'media_height' => $photo_height)); 
     $actions->actions_add($user, "editphoto", array($user->user_info['user_username'], $user->user_displayname), $action_media, 999999999, TRUE, "user", $user->user_info['user_id'], $user->user_info['user_privacy']); 

    } 

} 
$field = new se_field("profile", $user->profile_info); 
$field->cat_list(0, 0, 0, "profilecat_id='{$user->user_info['user_profilecat_id']}'"); 
$cat_array = $field->subcats; 
$smarty->assign('is_error', $is_error); 
$smarty->assign('cats', $cat_array); 
include "footer.php"; 
?> 

你可以看到$photo = $user->user_photo();也许应该去,而不是花括号。它总是要执行每次从list()开始的代码。

我不知道这是否是问题,但您似乎有正确的想法。我不知道是什么$photo = $user->user_photo();回报,但该文件存储在$_FILES['image']['tmp_name'](如果您的输入名称有键入文件名和图像),你可以得到getimagesize($_FILES['image']['tmp_name'])文件大小信息上http://www.php.net/manual/en/function.move-uploaded-file.php

的记录请确保您的表单标签其中有enctype="multipart/form-data"$_FILES数组将为空。

相关问题