首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery ajax php图像加载

问jQuery ajax php图像加载
EN

Stack Overflow用户
提问于 2017-06-11 20:11:38
回答 0查看 461关注 0票数 0

我有一个有2个输入的表单。文本和文件上传。我想发送数据到ajax,然后在php中创建一个带有某个名称的文件。我有代码,但它不能工作。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>

<form id="form">
    <input type="text" name="name"><br>
    <input id="photo" name="photo" accept="image/jpeg" type="file" placeholder="Фото"><br><br>
    <input name="submit" type="submit" value="Load">
</form>
<script src="ajax.js"></script>
</body>
</html>

AJAX:

代码语言:javascript
复制
$(document).ready(function() {
    $ = jQuery;

});

$(".photo input[name='photo']").change(function() {
    var reader = new FileReader();
    reader.onload = function (e) {
        $('.photo img').attr('src', e.target.result);
    }
    reader.readAsDataURL(this.files[0]);
});

$("#form").submit(function(e) {
    e.preventDefault();

    var photo = document.getElementById('photo');
    if(photo.files.lenght) {
        if(photo.files[0].size > 500000) {
            alert("Ошибка: Изображение не должно превышать размер в 500кб.");
            return;
        }
    }

    var formData = new FormData($(this)[0]);

    $.ajax({
        type: "POST",
        url: "ajax.php",
        data: formData,
        async: true,
        cache: false,
        contentType: false,
        processData: false,
        success: function(data) {

            } 
        },
);
});

PHP:

代码语言:javascript
复制
<?php   
    function check_file_uploaded_name($filename) {
        return preg_match("`^[-0-9A-Z_\.]+$`i", $filename) ? true : false;
    }

    function check_file_uploaded_length ($filename){
        return (mb_strlen($filename,"UTF-8") > 225) ? false : true;
    }   
    if($_SERVER['REQUEST_METHOD'] === 'POST') { 

        if(!$_FILES['photo']['error']) {        
            $name = $_FILES['photo']['name'];   
                if(!check_file_uploaded_name($name) || !check_file_uploaded_length($name)) {
                    die(json_encode(array("error" => "Wrong file name"), JSON_UNESCAPED_UNICODE));          
                }

                if($_FILES['photo']['size'] > 500000) {
                    die(json_encode(array("error" => "Wrong file size"), JSON_UNESCAPED_UNICODE));          
                }           

                if (!file_exists("/photo")) {               
                    mkdir("/photo", 0777, true);            
                }   

                move_uploaded_file($_FILES['vac-photo']['tmp_name'], "/photo/1.jpg");       
        }   
    }
?>

什么都没发生。:(

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44483719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档