文件上传 struts2
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于文件上传 struts2内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在文件上传 struts2相关知识领域提供全面立体的资料补充。同时还包含 w3c标准、w3c菜鸟、w3c验证 的知识内容,欢迎查阅!
文件上传 struts2相关知识
-
文件上传之三基于flash的文件上传 本文介绍jQuery的一个插件uploadify,现在的版本支持两种实现。一个是flash,一个是HTML5。本文介绍的是flash版本的。uploadify的官网uploadify介绍 uploadify是一个jQuery插件,让程序员很容易就实现多文件的上传功能。有两种不同的版本,一个是flash,另一个是HTML5.特点多文件上传拖拽(HTML5版本)可以实时的查看上传情况(百分比,上传速度等)定义上传文件的限制,如大小,数目,类型uploadify的API 因为官网已经有很详细的文档,而且简单易懂,这边就不在详细介绍uploadify的API。Struts2与uploadify的结合 服务器端的代码与之前文章介绍的差不多,所以为了减少文章的篇幅,这边就不在展示服务器端的代码了。现在具体讲解前端界面的实现。1.下载uploadify2.新建上传页面,引入jQuery,uploadify的js。如下所示:<%@ page lang
-
DWR3.0实现异步上传文件 Struts2.3.1 中整合DWR3.0 实现文件上传步骤1:导入 dwr*.jar ,1.struts2-dwr-plugin-2.3.1.jar步骤2:在web.xml中引入dwr的配置<servlet> <servlet-name>dwr</servlet-name> <servletclass> org.directwebremoting.servlet.DwrServlet </servlet-class> &nb
-
PHP 文件上传项目中,我们经常会遇到上传文件(如app中上传自己的图像,网站中上传新闻的缩略图等),这些都离不开PHP上传文件,这一章,我们将会解开上传文件的序幕。测试网站:http://www.kaifazhe.site/php/1102/index.php创建一个文件上传表单:<html><body><form action="uploadFile.php" method="post" enctype="multipart/form-data"><label for="file">选择文件:</label><input type="file" name="file" id="file" /><br /><input type="submit" name="sub
-
Feign上传文件今天给大家介绍下在Feign中如何调用文件上传接口,进行文件上传操作。这边文章讲的Feign不是Spring Cloud Feign,是原始Feign的使用。在一些比较老的,不是Spring Cloud的项目中,我们也可以用Feign来进行接口的调用。使用Feign来上传文件,首先你得有一个上传文件的接口,我们假设上传地址如下:POST http://localhost:8080/file/upload参数的话就一个file,一个二进制文件。在项目中增加Feign的依赖,除了核心模块还有jackson,最重要的就是form模块的依赖,否则无法上传文件。<dependency> <groupId>com.netflix.feign</groupId> <artifactId>feign-core</artifactId>
文件上传 struts2相关课程
-
iOS之FTP上传 本课程会着重给大家讲解FTP的上传机制,从文档介绍,并且会通过上传头像的案例,帮助大家完成相册的获取、ftp上传路径的获取以及具体的操作流程。
讲师:爬梯 初级 4085人正在学习
文件上传 struts2相关教程
- 4.1 上传文件 <html><head><meta charset="UTF-8"><title>文件上传</title></head><body><h2>上传文件</h2><form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" class="input"> <input type="submit" value="上传" class="input button"></form>定义上传文件表单 form,使用 POST 方法提交给服务端 /upload 页面处理,属性 enctype=“multipart/form-data” 表示表单中包含有上传文件的数据需要处理。
- 2.1 配置文件上传组件 打开项目中的 WebConfig 文件,添加如下代码:@Beanpublic MultipartResolver multipartResolver() { return new StandardServletMultipartResolver();}MultipartResolver 是一个接口,约定了文件上传的方法。StandardServletMultipartResolver 是具体的实现类,用来完成文件上传。对上传的文件信息进一步进行配置,如限制文件大小、文件类型等。打开 WebInitializer 文件,重写 customizeRegistration() 方法:@Overrideprotected void customizeRegistration(Dynamic registration) { registration.setMultipartConfig(new MultipartConfigElement(null,2000000,400000,0));}MultipartConfigElement()方法可以接收 3 个参数:第一个参数指定保存上传文件的临时目录。如果指定 null,由 Spring MVC 自己提供;最好不要指定;第二个参数,文件上传的最小大小限制;第三个参数,文件上传的最大尺寸限制。
- 1. Django 的文件上传实验 同样,话不多说,我们先通过两个上传的例子来看看 Django 的上传功能。实验1:简单文件上传准备本地文件,upload.txt,上传到服务器的 /root/test/django 目录下;准备模板文件,显示上传按钮:<form method="post" action="/hello/file_upload/" enctype="multipart/form-data"> {% csrf_token %} {{ forms }}<br> <input type="submit" value="提交"></form>完成 Form 表单以及视图函数的编写:class FileUploadForm(forms.Form): file = forms.FileField(label="文件上传")def handle_uploaded_file(f): save_path = os.path.join('/root/test/django', f.name) with open(save_path, 'wb+') as fp: for chunk in f.chunks(): fp.write(chunk)@csrf_exemptdef file_upload(request, *args, **kwargs): error_msg = "" if request.method == 'POST': forms = FileUploadForm(request.POST,request.FILES) if forms.is_valid(): handle_uploaded_file(request.FILES['file']) return HttpResponse('上传成功') error_msg = "异常" else: forms = FileUploadForm() return render(request,'test_file_upload.html',{'forms':forms, "error_msg": error_msg})编写 URLConf 配置:urlpatterns = [ # ... # 文件上传测试 path('file_upload/', views.file_upload)]只需要这样几步,一个简单的文件上传就完成了。接下来启动服务进行测试,参考如下的操作:17实验2:使用模型(model) 处理上传的文件第一步,先设置 settings.py 中的 MEDIA_ROOT,这个设置上传文件保存的根目录;# first_django_app/settings.py# ...MEDIA_ROOT = '/root/test/'# ...第二步,准备文件上传模型类# hello_app/models.py# ...class FileModel(models.Model): name = models.CharField('上传文件名', max_length=20) upload_file = models.FileField(upload_to='django')注意:这个 upload_to 参数和 settings.py 中的 MEDIA_ROOT 属性值一起确定文件上传的目录。它可以有很多种形式,比如写成upload_to='django/%Y/%m/%d' 这样的。此外,该参数可以接收方法名,该方法返回的是上传文件的目录。第三步,我们必须要生成这个对应的表,使用如下命令:(django-manual) [root@server first_django_app]# python manage.py makemigrations hello_app(django-manual) [root@server first_django_app]# python manage.py migrate hello_app执行完成这两步之后,在数据库里面,我们就生成了相应的表。默认的表面是[应用名_模型类名小写],即hello_app__filemodel。第三步, 准备相应的视图函数;# hello_app/views.py# ... def file_upload2(request, *args, **kwargs): if request.method == 'POST': upload_file = request.FILES['upload_file'] FileModel.objects.create(name=upload_file.name, upload_file=upload_file) return HttpResponse('上传成功') return render(request,'test_file_upload2.html',{})# ...(django-manual) [root@server first_django_app]# cat templates/test_file_upload2.html {% load staticfiles %}<form method="post" action="/hello/file_upload2/" enctype="multipart/form-data"> {% csrf_token %} <label>选择上传文件:</label><input type="file" name="file"> <div><input type="submit" value="提交" style="margin-top:10px"></div></form>注意:这里和之前保存文件方式略有不同,直接使用对应模型实例的保存数据方法即可,文件将会自动上传到指定目录下且会在数据库中添加一条记录。编写对应的 URLconf 配置,如下:# hello_app/urls.py# ...urlpatterns = [ # ... # 文件上传测试 path('file_upload2/', views.file_upload2)]接下来,就是常规的启动服务,然后页面上测试。参考如下:18实验3:多文件上传实验实现一次上传多个文件也比较简单,我们只需要改动前端的一行代码,就可以支持一次性上传多个文件。改动前端代码如下:<!--原来的语句 <label>选择上传文件:</label><input type="file" name="file"> --><label>选择上传文件:</label><input type="file" name="files" multiple="">接下来,简单调整下视图函数:def file_upload2(request, *args, **kwargs): if request.method == 'POST': # 获取文件列表 upload_files = request.FILES.getlist('files') # 遍历文件并保存 for f in upload_files: FileModel.objects.create(name=f.name, upload_file=f) return HttpResponse('上传成功') return render(request,'test_file_upload2.html',{})最后看我们的启动服务和测试接口过程如下:19
- 上传文件 最后看一看 requests 库中如何上传文件:>>> url = 'https://httpbin.org/post'>>> files = {'file': open('/home/store/shen/start.sh', 'rb')}>>> r = requests.post(url, files=files)>>> r.text'{\n "args": {}, \n "data": "", \n "files": {\n "file": "#!/bin/bash\\n########################################################\\n# author: spyinx (https://blog.csdn.net/qq_40085317) #\\n# email: 2894577759@qq.com #\\n# date: 2020/6/24 #\\n# function: start agent server on CentOS 7.7 #\\n########################################################\\nAGENT_PORT=8765\\n\\n# check the agent process first\\nmain_pid=$(pstree -ap|grep gunicorn|grep -v grep|awk \'NR==1{print}\'|grep -o \\"[0-9]*\\"|awk \'NR==1{print}\')\\nif [ -n \\"$main_pid\\" ]; then\\n echo \\"get the agent server\'s main pid: $main_pid\\"\\n sudo kill -9 $main_pid\\n echo \\"stop the server first\\"\\n sleep 15\\n process_num=$(ps -ef|grep gunicorn|grep -v grep|wc -l)\\n if [ $process_num -ne 0 ]; then\\n echo \\"close agent server failed\\uff0cexit!\\"\\n exit 1\\n fi\\nfi\\n\\n# start agent server\\nmaster_addr=$(cat /etc/hosts | grep `hostname` | awk \'{print $1}\')\\necho \\"start agent server\\"\\ngunicorn -w 4 -b $master_addr:$AGENT_PORT xstore_agent.agent:app --daemon\\nsleep 5\\nprocess_num=$(ps -ef|grep gunicorn|grep -v grep|wc -l)\\nif [ $process_num -eq 0 ]; then\\n echo \\"start agent server failed\\uff0cplease check it!\\"\\n exit 2\\nfi\\necho \\"start agent server success\\uff0cok!\\""\n }, \n "form": {}, \n "headers": {\n "Accept": "*/*", \n "Accept-Encoding": "gzip, deflate", \n "Content-Length": "1356", \n "Content-Type": "multipart/form-data; boundary=565e2040b1d37bad527477863e64ba6c", \n "Host": "httpbin.org", \n "User-Agent": "python-requests/2.24.0", \n "X-Amzn-Trace-Id": "Root=1-5ef49e5f-a02b3e64f58fe4a3ff51fa94"\n }, \n "json": null, \n "origin": "47.115.61.209", \n "url": "https://httpbin.org/post"\n}\n'>>>在 requests 库中,只需要将上传文件参数传递给 post() 方法即可,是不是非常简单?另外,我们还可以在请求中添加 cookie 或者在相应中获取相应的 cookie 信息。另外,我们还可以使用 requests 的 Session 来维持会话,这在有登录需求的网站获取数据时会非常有用:# 创建一个session对象,用来存储session信息>>> s = requests.session() >>> s.get("http://www.baidu.com") 如果在登录之后,继续使用 session 对象再请求该网站的其他页面的 url,就会带着 session 信息去与该网站进行交互,模拟登录后的访问。
- Django 的文件上传 在学习完 Django 的 Form 模块后,我们就用最后一个常用的文件上传的场景来结束本部分的内容。
- 4.2 创建 Excel 文件上传路由 按照之前第 22 小节文件上传的方式新建路由如下://文件上传界面Route::get('file','file/index');//文件上传Route::post('upload','file/upload');
文件上传 struts2相关搜索
-
w3cshool
w3c标准
w3c菜鸟
w3c验证
walk
wall
warn
web
web py
web service
web services
webbrowser
webgl
webmaster
webservices
webservice教程
webservice接口
webservice调用
websocket
webview