python - django 使用ajax将图片上传到服务器并渲染到前端

一。前端代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<script>
    // 创建一个表单对象(用于存储要发送的data数据)
    form_data = new FormData;    

    // 参数1:后端请求时要获取的参数, 参数2:图片文件File对象
    form_data.append("files", $("#file_img")[0].files[0]);

    // 向后端发送 ajax 请求
    $("#btn").click = function(){
        $.ajax({
            url: "/img/save/",
            method: "post",
            contentType: false,        // 告诉jQuery不要去设置Content-Type请求头
            processData: false,        // 告诉jQuery不要去处理发送的数据
            data: form_data,
            success: function(data){
                console.log("上传成功!");
            }, error: function(data){
                console.log("上传失败!");
            }
        })
    }

</script>    

<body>

    <form>
        <input type="file" id="file_img">
        <input type="button" value="提交" id=btn>
    </form>    

</body>
</html>

二。后端代码。

# 1. settings  设置图片保存路径
MEDIA_URL = ‘/media/‘
MEDIA_ROOT = os.path.join(BASE_DIR, "up_img")

# 2. models
class Image(models.Model):
    path_and_rename = PathAndRename("order/pho")                 # 图片存储路径 - 最终呈现路径:/up_img/order/pho/xx.jpg
    image = models.ImageField(verbose_name=u"图片", upload_to=path_and_rename)

# 3. url
url(r‘^img/save/$‘, surface_save, imgViews),

# 4. views
def imgViews(request):
    file_img = request.FILES.get(‘files‘, None)
    filename, full_filename = save_image(file_img)
    Image.objects.create(image=filename)

# 定义一个保存图片的方法
def save_image(files):
    filename = "%s.%s" % (timezone.now().strftime(‘%Y%m%d%H%M%S%f‘), files.name.split(‘.‘)[-1])
    full_filename = "%s/%s" % (settings.MEDIA_ROOT, filename)
    with open(full_filename, ‘wb+‘) as destination:
        for chunk in files.chunks():
            destination.write(chunk)
    return filename, full_filename

三。前端渲染

<img src="{{ img_obj.image.url }}" alt="">

# {{ img_obj.image.url }} 拿出来的是图片路径, img_obj是models中Image表对象
# 2. models

原文地址:https://www.cnblogs.com/chaoqi/p/11196498.html

时间: 2024-10-12 17:07:50

python - django 使用ajax将图片上传到服务器并渲染到前端的相关文章

felayman——PHP中图片上传到服务器

1.upload_file.php <?php //该文件负责获取上传的图片的扩展名和随机生成文件名 header("content-type:text/html;charset=utf-8"); /** * 获取文件扩展名 *Enter description here ... * @param unknown_type $filename */ function getFileName($filename){ //strrchr- 查找指定字符在字符串中的最后一次出现 ret

php form 图片上传至服务器上

本文章也是写给自己看的,因为写的很简洁,连判断都没有,只是直接实现了能上传的功能. 前台: <form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="myfile" /> <input type="submit" value=

使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,

一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不够. 下面我们就说说,利用canvas 生成带水印的图片. 1.我们要实现一下效果 2.创建一个canvas var canvas = document.createElement('canvas'); var time = new Date(); var logoCanvas =time+' '+

使用ajax进行图片上传

本来用的框架中的图片上传,但是感觉不够灵活,有些地方不合我意,所以自己实现了,顺便学习下. 首先,常规的ajax中data的参数应该是键值对,但是上传图片的话,data里应该是file而不是key value.所以需要使用formData html js 单张图片上传 多张图片上传 原文地址:https://www.cnblogs.com/Dengxiaobo/p/9239661.html

根目录97 &lt;input file&gt;标签,把图片上传到服务器(跟增删改查一起实现)

1 首先来个简单的html页面: enctype="multipart/form-data" encoding="multipart/form-data" action="../../后台/后台方法.do" //form表单加上这几个属性 action指向后台添加方法 2 3 <input type="button" id="uupdatekeyword2" value="修改"

django基于mysql实现图片上传与打开

1:在models.py文件中建立数据表 from django.db import models class User(models.Model): img = models.ImageField(upload_to='img',null=True) 因为我是后来添加的图片字段,所以需要在里面加个null=True,至于Upload_to是文件板寸的路径 2:配置setting.py TEMPLATES = [ { 'BACKEND': 'django.template.backends.dj

django中tinymce添加图片上传功能

主要参考以下: https://pixabay.com/en/blog/posts/direct-image-uploads-in-tinymce-4-42/ http://blog.csdn.net/tianlanzhixie/article/details/50240071 这里还有个用php使用的,可以参考http://zhaoda.net/tinymce-upload/example.html 大体思路就是 添加js的一个函数,这个是tinymec自带的 file_picker_call

jsp+ajax+springMvc图片上传立刻回显 电商

思路:onchange()事件触发异步请求,js将成功后返回图片的地址动态写入 JSP页面:  外层一个ID为myForm的表单 <pre name="code" class="html"> <a name="uploadImgs" id="uploadImgs"></a> <p><label><samp>*</samp>上传产品图片(XX尺寸

android选择图片或拍照图片上传到服务器(包括上传参数)

From:http://blog.csdn.net/springsky_/article/details/8213898具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 [java] view plaincopy package com.spring.sky.image.upload; import java.util.HashMap; import java.util.Map; import android.app.Activity; import android.app.