from表单文件上传,无法获取表单内其他内容信息。

当表单提交设置enctype为"multipart/form-data"时,常规方式无法获取表单其他内容。可通过getFieldName获取name,getString("UTF-8")获取value,形成Map处理文件上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在进行表单提交时需要添加属性enctype="multipart/form-data",这样就代表这个表单为附件表单,以至于利用传统的getParameter()方法获取不到表单的其他内容。

        利用附件表单中的 getFieldName()方法可获取表单中数据的name属性值,

        调用getString("UTF-8")方法获取表单的中提交数据对应的value值;

        利用map键值的存储关系组成一个文件上传类直接使用即可。

package com.tlm.util;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
//文件上传封装类
public class FileUpload {

    public static Map<String,String> fileUp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Map<String,S
在Flask中,你可以通过`request`对象轻松地从HTTP请求中获取来自前端的表单数据或上传的文件。 首先,在路由函数里你需要导入并使用`request`模块,并结合HTML页面创建一个包含文件输入元素的表单,该表单应当设置编码类型为 `enctype="multipart/form-data"`以便能够发送二进制流形式的数据给服务器端: ```html <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"/> <input type="submit"/> </form> ``` 然后,在对应的Python Flask视图函数内部可以这样做: ```python from flask import request @app.route('/upload', methods=['POST']) def upload_file(): if 'myfile' not in request.files: return "No file part" file = request.files['myfile'] # 如果用户没有选择文件,浏览器也会提交一个空的部分,但没有filename属性 if file.filename == '': return "No selected file" if file and allowed_file(file.filename): # 这里的allowed_file是你自定义的一个检查文件类型的辅助函数 filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) return f"{filename} has been uploaded successfully." else: return "Invalid File Type." # 需要在应用配置里面指定好存放路径 app.config["UPLOAD_FOLDER"] = "/path/to/the/uploads" ``` 注意这里用到了两个重要的方法:`files` 和 `save()`. `files`是一个特殊的字典结构用于存储所有上传的文件信息;而`save()`则允许我们将接收到的实际内容保存到磁盘上指定位置。 此外还需要引入安全处理文件名的功能以防止潜在的安全漏洞(`secure_filename`)以及设定有效的文件夹路径等细节问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值