2010-09-07 2 views
1

Я использую Uploadify для загрузки изображений. единственный сбой, с которым я столкнулся, - это я хочу ограничить размер изображения пользователем для загрузки изображения. (По какой-то причине я не хочу использовать размер изображения). моя логика для этого в php: у меня есть пользовательская функция, которая сначала принимает три параметра tempname изображения, во-вторых, ширину изображения, чтобы ограничить, в-третьих, высоту изображения, чтобы ограничить пользователя.Помогите мне понять логику загрузки файла с помощью Uploadify

моя функция что-то вроде этого.

function valid_image($image, $width, $height = 0) { 
      /** Get the Dimensions of the Uploaded Image **/ 
      list($image_width, $image_height) = getimagesize($image['tmp_name']); 
      /** If the height parameter in function is skipped then perform this **/ 
     if($height == '0') { 
     if($image_width !== $width) { 
      return false; 
      } 
      } 
      /** If all the parameters in the function has got the value then perform this **/ 
    else if($image_width !== $width || $image_height !== $height) { 
      return false; 
      } 
      return true; 
      } 

Я хочу применить одно и то же правило для загрузки.

вот мой сценарий Jquery для Uploadify.

//Uploadify File1 
    $(document).ready(function() { 
    $('#nstitle').uploadify({ 
     'uploader': 'images/uploadify.swf', 
     'script': 'uploadify.php', 
     'folder': 'upload', 
     'auto' : 'true', 
     'cancelImg': 'images/cancel.png', 
     'fileDesc': 'jpg/jpeg', 
     'displayData': 'percentage', 
     'fileExt': "*.jpg;*.jpeg", 
     'sizeLimit' : '8388608', 
     'fileDataName' : 'nstitle', 
     onComplete: function(event, queueID, fileObj, response, data) 
     { 
    $('#t_fileUploadName').append('<p>'+response+'<p/>'); 
    $("#t_fileUploadField").append("<input type='hidden' name='nstitle' value='" + response + "' />"); 
    $("#t_fileUploadBtn").remove(); 
     } 
     }); }); 

теперь я хочу Uploadify генерировать ошибку, если она не удовлетворяет условию, что в uploadify.php я сделал что-то вроде этого.

if (!empty($_FILES['nstitle'])) { 
    $tempFile = $_FILES['nstitle']['tmp_name']; 
    if(!valid_image($_FILES['nstitle'],685 , 50)) { 
    echo "Incorrect File Dimension"; 
    die(); 
    } 
    else { 
    $targetPath = 'uploads/news/title/'; 
    move_uploaded_file($tempFile,$targetPath.$ns_title); 
    echo "$targetPath$ns_title"; 
    } 
} 

Обратите внимание, что я включил все связанные файлы на соответствующие страницы с require_once(); если я удалю этот valid_image() и запустил скрипт без него, он просто отлично работает, но если я попытаюсь включить условие для запуска ошибки, это не сработает, потому что я попытался загрузить файл с точным измерением. и все же он отказывается войти в это еще условие.

Я здесь пустым, это неправильный способ сделать это. если да, то как я могу ограничить пользователя фиксированным размером изображения. любой тип помощи очень ценен, дайте мне знать, что вы берете и используете, используя Uplodify, связанные с запуском ошибки.

заранее спасибо ..

+0

"Uploadify", как в 'www.uploadify.com'? – VolkerK

+0

@VolkerK да есть. –

ответ

2

Изменить

if(!valid_image($_FILES['nstitle'],685 , 50)) { 

в

if(!valid_image($tempFile,685 , 50)) { 

Кажется, вы работали слишком долго, что вы не поймать эту крошечную ошибку :)кажется, что я работал слишком долго.


EDIT:

В верхней части valid_image функции, добавьте:

var_dump($image, getimagesize($image['tmp_name'])); 

Что делает этот вывод?

+0

... и это применяется независимо от того, используете ли вы загрузку или нет. – VolkerK

+0

Nope :(проверить мою функцию valid_image, определенную пользователем, я попросил функцию связать параметр с ['tmp_name']. Это код. $ Image ['tmp_name']; я даже пробовал с подсказкой, и он не работает мой вопрос - uploadify.php, способный на это? –

+0

Да, с точки зрения php это полностью нормальная загрузка файла. – VolkerK

0

Вы можете изменить! == на! = Функция valid_image, а затем попытаться

Смежные вопросы