flex结合django上传图片,之前在网上只找到一篇文章http://blog.douhua.im/2009/06/14/flex-django-upload/
自己在此基础上进行,最终实现其功能,当成功之后,前台得到返回的上传图片名称。
flex端的mxml文件
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationPolicy="auto"
layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import com.adobe.cairngorm.model.ModelLocator;
import mx.events.CloseEvent;
import mx.controls.Alert;
import mx.managers.CursorManager;
private var file:FileReference = new FileReference();
private var _upload:URLRequest;
[Bindable]
private var percent : int = 0;
public function init():void
{
file.addEventListener(Event.SELECT, selectHandler);
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadCompleteDataHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
browseBtn.addEventListener(MouseEvent.CLICK, browseHandler);
}
public function browseHandler(event:MouseEvent): void
{
file.browse();
}
public function reset(): void
{
fileTxt.text="";
processBar.setProgress(0, 100);
processBar.visible=false;
processBar.label="Uploading " + 0 + "%";
}
public function selectHandler(event:Event): void
{
fileTxt.text=file.name;
}
private function ioErrorHandler(event:Event):void{
Alert.show("fail");
}
public function uploadCompleteDataHandler(event:DataEvent): void{
tt.text=event.data;
Alert.show("success");
}
public function progressHandler(event:ProgressEvent): void
{
var size:int = file.size;
percent = event.bytesLoaded/event.bytesTotal * 100;
processBar.setProgress(percent, 100);
processBar.label="Uploading " + percent + "%";
if (event.bytesLoaded == event.bytesTotal)
{
processBar.label="Upload file successfully!";
}
}
public function upload(): void
{
if(fileTxt.text == "")
{
Alert.show("Please select upload file");
return;
}
_upload = new URLRequest('http://localhost:8000/upload/');
_upload.method = URLRequestMethod.POST;
_upload.contentType = "multipart/form-data";
processBar.visible=true;
file.upload(_upload,'file',true);
}
]]>
</mx:Script>
<mx:Panel width="428" height="256" layout="absolute" title="File Upload" fontSize="12" y="58" x="59">
<mx:Label x="49" y="32" text="File:"/>
<mx:TextInput x="88" y="30" id="fileTxt" width="226" editable="false"/>
<mx:Button id="browseBtn" x="316.5" y="30" label="打开"/>
<mx:Button id="uploadBtn" x="88" y="92" label="上传" click="upload()"/>
<mx:Button id="cancelBtn" x="183" y="92" label="Cancel" visible="false"/>
<mx:ProgressBar id="processBar" labelPlacement="bottom" themeColor="#EE1122" minimum="0"
visible="false" maximum="100" color="0x323232" label="Loading 0%"
direction="right" mode="manual" width="358.5" y="144" x="21.5"/>
<mx:Label x="49" y="150" text="Label" id="tt"/>
</mx:Panel>
</mx:Application>
django端的处理文件
from django import forms
from django.http import HttpResponse
def upload(request):
UPLOAD_PATH = 'flex/assets/pic/'
if request.method == 'POST':
img = request.FILES['file']
destination = open(UPLOAD_PATH + img.name, 'wb+')
for chunk in img.chunks():
destination.write(chunk)
destination.close()
return HttpResponse(img.name)
别忘了配置setting.py,urls.py
over
如果有需要,再整理上传源码文件。
分享到:
相关推荐
基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于...
通过Django的Form方式上传文件,简单,但无法局部刷新实现ajax效果; 通过js或jQuery方式,需要使用FormData对象,仍有些浏览器不兼容; 通过Form+iframe方式上传文件,兼容性最好。 里面含有全部源代码。
现在,你可以访问`http://127.0.0.1:8000/upload/`来上传文件,访问`http://127.0.0.1:8000/list/`来查看已上传的文件。 以上就是使用Django实现文件上传并显示的完整过程。这个例子展示了Django模型、表单、视图...
Django上传文件并自动加载静态资源
在 Django 框架中,上传文件是一项常见的需求,它涉及到用户通过网页上传图片、文档等各类文件。在这个实例中,我们将深入探讨如何在 Django 1.5 版本中实现一个简单的文件上传功能,特别是图片上传。 首先,我们...
在本教程中,您可以学习 迭代请求文件 和 上传多个文件 一次使用 Django 在 Python 中。本教程旨在为学生和初学者提供学习开发动态网站的参考 姜戈.在这里,我将提供一些步骤来创建一个简单的 Web 应用程序,该应用...
files = models.FileField(upload_to='uploads/', blank=True, null=True, verbose_name='上传文件', multiple=True) ``` 这里我们定义了一个`FileUpload`模型,有一个CharField字段`title`用于存储文件的标题,...
上传文件 ``` 最后,更新`urls.py`文件,添加路由以关联视图: ```python from django.urls import path from . import views urlpatterns = [ path('upload/', views.upload_file, name='upload'), ] ``` ...
确保`MEDIA_ROOT`指定了一个用于存储用户上传文件的目录,并设置`MEDIA_URL`为访问这些文件的URL前缀: ```python MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' ``` 接下来,创建一个...
此外,你还需要确保文件存储策略安全,避免敏感信息泄露,限制上传文件类型和大小,以防止恶意文件上传。 总结起来,Django Forms提供了方便的方式来处理文件上传,包括定义表单、处理视图、创建模板以及配置URL...
`upload_to`参数指定了上传文件的存储位置。 2. **表单处理**:创建一个Django表单,包含这些字段,以便在视图中处理用户上传的文件。使用`ModelForm`可以简化这个过程: ```python from django import forms ...
在本文中,我们将深入探讨如何在Django框架中结合Layui实现图片上传功能。Layui是一款优秀的前端UI框架,而Django是Python后端开发的流行框架,两者结合可以构建出美观且功能强大的Web应用。以下是实现这一功能的...
标题提到的“django 2.2 whl文件”就是Django 2.2版本的WHL安装包,它包含了该版本的所有核心模块和功能。使用这种格式的安装文件,开发者可以直接通过Python的包管理工具pip进行安装,而无需手动编译源代码。 描述...
上传文件 <div id="response"></div> $(document).ready(function () { $("#upload-form").ajaxForm({ dataType: 'json', success: function (response) { if (response.success) { $('#response')....
本文实例讲述了Django框架文件上传与自定义图片上传路径、上传文件名操作。分享给大家供大家参考,具体如下: 文件上传 1、创建上传文件夹 在static文件夹下创建uploads用于存储接收上传的文件 在settings中配置, ...
在Web开发中,尤其是使用Django框架时,将图片上传到服务器并通过数据库进行管理是常见的需求。本文将详细讲解如何使用Django框架实现图片的上传、存储到数据库以及在前端页面的展示。涉及的知识点包括Django模型...
- **myFile.name**:提供上传文件的原始名称,包括扩展名,例如`123.exe`。 - **myFile.size**:返回文件大小(字节)。 理解以上知识点后,你可以轻松地在Django项目中实现文件上传功能,同时保持代码简洁和高效。...
以上内容为Django框架下静态文件和媒体文件的使用方法,以及如何通过Django进行文件上传的详细过程。在实际开发过程中,正确配置和使用静态文件、媒体文件以及文件上传功能对于保证Web应用的功能性和用户友好性是...
本文实例为大家分享了Django实现文件上传下载的具体代码,供大家参考,具体内容如下 一、django实现文件下载 (1)、后台接口 如果从服务器直接将文件路径传给浏览器,普通文件可以直接下载,而图片,html,css和pdf格式等...
特别是在需要用户批量上传文件的情况下,如何有效地实现这一功能显得尤为重要。Django作为一款流行的Python Web框架,提供了强大的文件处理能力。本文将详细介绍如何在Django框架中实现一次性上传多个文件的功能,并...