使用ajax上传后获取图像大小

交战的原因

我正在使用一种工具,该工具允许用户使用ajax异步上传图像。然后,用户可以使用jQuery UI中的滑块调整图像大小。但是,我在使用变量值时遇到了麻烦,这些变量值会获得用于调整图像大小的图像大小,因为在加载页面时没有图像,因此将变量设置为零。

我想找到一种在上传图像后立即刷新orginalWidthorginalHeight的方法

这是代码:

//Upload the image with AJAX

$('#uploadForm').on('change', (function(e){
e.preventDefault();
    $.ajax({
        url: "upload.php",
        type: "POST",
        data:  new FormData(this),
        contentType: false,
        cache: false,
        processData:false,
        success: function(data)
        {
        $("#image").attr('src',data);
        },
        error: function() 
        {
        }           
   });
}));

    //Resize slider with jQuery UI
    
        
    var orginalWidth  = $("#image").width();
    var orginalHeight = $("#image").height();
        
    $("#infoSlider").text(orginalWidth + ', ' + orginalHeight + ', 100%');

    $("#slider").slider({
        value: 0,
        min: -50,
        max: 50,
        step: 10,
        slide: function (event, ui) {
        
        var fraction = (1 + ui.value / 100),
        newWidth = orginalWidth * fraction,
        newHeight = orginalHeight * fraction;

            $("#infoSlider").text(newWidth + ', ' + newHeight + ', ' + Math.floor(fraction * 100) + '%');

            $("#image").width(newWidth);
        }
    });

编辑 :

所以@FlashThunder告诉我使用PHP来获取图像大小。但是我的PHP代码不起作用(JS变量“未定义”)。

PHP代码:

//Check if the file is well uploaded
if($_FILES['file']['error'] > 0) { echo 'Error during uploading, try again'; }

//We won't use $_FILES['file']['type'] to check the file extension for security purpose

//Set up valid image extensions
$extsAllowed = array( 'jpg', 'jpeg', 'png', 'gif' );

//Extract extension from uploaded file
    //substr return ".jpg"
    //Strrchr return "jpg"
    
$extUpload = strtolower( substr( strrchr($_FILES['file']['name'], '.') ,1) ) ;

//Check if the uploaded file extension is allowed

if (in_array($extUpload, $extsAllowed) ) { 

    //Upload the file on the server

    $name = "img/{$_FILES['file']['name']}";
    $result = move_uploaded_file($_FILES['file']['tmp_name'], $name);


    if($result){
        //echo "$name";
        
        //Save the image size
        //$filename = $_FILES['file']['tmp_name'];
        list($width, $height) = getimagesize($name);
        $data = array('src' => $name, 'width' => $width, 'height' => $height);
        echo json_encode($data);
        
    }
    
} else { echo 'File is not valid. Please try again'; }

JS代码:

$.ajax({
            url: "upload.php",
            type: "POST",
            //data:  new FormData(this),
            data : 'json',
            contentType: false,
            cache: false,
            processData:false,
            success: function(data){
                $("#image").attr('src', data.src);
                var orginalWidth  = data.width;
                var orginalHeight = data.height;
                alert(orginalWidth);
            },
            error: function() 
            {
            }           
       });
闪电雷

您可以使用PHP上传脚本执行此操作。它可以返回描述图像大小的对象,并在Ajax成功函数中将获取这些值。

例如,PHP可能包含以下内容:

$data = array('src' => $src,'width' => $width, 'height' => $height);
echo json_encode($data);

在JS中:

...
dataType: 'json',
...
success: function(data){
   $("#image").attr('src',data.src);
   console.log(data.height);
   console.log(data.width);
}

确实是这样的:

$.ajax({
   url: "upload.php",
   type: "POST",
   data:  new FormData(this),
   dataType : 'json',
   contentType: false,
   cache: false,
   processData:false,
   success: function(data){
       $("#image").attr('src',data.src);
       console.log(data.height);
       console.log(data.width);
   },         
});

图像大小可以通过PHP函数getimagesize()获得

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Firebase存储上传后如何获取调整后大小的downloadUrl(Web SDK +调整图像大小)

来自分类Dev

上传后调整图像大小

来自分类Dev

使用 JavaScript 上传后无法获取文件大小

来自分类Dev

提交后使用ajax和php上传图像

来自分类Dev

使用jQuery File Upload上传后如何获取图像尺寸?

来自分类Dev

在 React 上传之前获取图像大小

来自分类Dev

如何使用AJAX上传图像?

来自分类Dev

使用Ajax上传器删除上传的图像

来自分类Dev

ActiveStorage-上传后获取图像尺寸

来自分类Dev

REACT DROPZONE:上传后获取数据:图像

来自分类Dev

使用uploadify上传图像后刷新图像

来自分类Dev

使用Active Storage gem上传图像后,为什么不能获取图像?

来自分类Dev

上传前使用画布调整图像大小

来自分类Dev

上传前使用画布调整图像大小

来自分类Dev

使用 Laravel 上传多个调整大小的图像

来自分类Dev

调整大小后获取图像尺寸

来自分类Dev

使用golang获取图像大小

来自分类Dev

在PIL中调整大小后将图像上传到Imgur

来自分类Dev

使用Swift将其上传到Firebase 3.0后,如何正确获取图像URL

来自分类Dev

使用Ajax使用图像上传Codeigniter表单

来自分类Dev

在使用javascript上传之前获取文件大小

来自分类Dev

在使用javascript上传之前获取文件大小

来自分类Dev

在图像上传ajax php期间获取图像宽度

来自分类Dev

调整大小后获取svg图像的实际大小

来自分类Dev

在iPhone SDK中调整大小后获取图像的大小

来自分类Dev

上传、调整大小和获取新图像的尺寸

来自分类Dev

使用FormData上传PHP AJAX图像

来自分类Dev

WordPress图像上传是否使用ajax?

来自分类Dev

使用ajax上传图像并提交表单

Related 相关文章

热门标签

归档