2012-04-05 13 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(); 

効果がなく、16pxの画像もアップロードされます。 ありがとうございました 助けていただけたら幸いです。ありがとうございます。

+2

あなたのお手伝いをするために、このコードの書式を設定してみてください。 – gosukiwi

+0

私はエディタを試してみましたが、私のルールに合わないエラーが出ることがあります。 – Sanshiro

答えて

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']に保存されている(あなたの入力名はファイルと名前の画像を入力している場合)とhttp://www.php.net/manual/en/function.move-uploaded-file.php

に記載されているようよろしいフォームタグを作成しますgetimagesize($_FILES['image']['tmp_name'])とファイルサイズの情報を取得することができますenctype="multipart/form-data"が含まれているか、$_FILESアレイが空になります。

関連する問題