src/org/bs/servlet/backend/MultipartRequestWrapper.java

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package org.bs.servlet.backend;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
import org.apache.commons.io.FilenameUtils;

public class MultipartRequestWrapper extends HttpServletRequestWrapper {

	private Map allParams;

	public MultipartRequestWrapper(HttpServletRequest request) {
		super(request);

		// �����ж��Ƿ�multipart��������
		// �����multipart�������ͣ��������request��ȡ�������?��
		// ���?������ͨ�ı?�������ֵȡ�����ŵ�allParams��
		// ���?���������
		// 1�����ļ��ȴ洢�����̵�ij��Ŀ¼�У�
		// 2�����ļ����й���Ϣ����ƣ����ͣ��ϴ�ʱ�䣩��װ��Attachment[]����
		// 3���Ѱ�װ�õ�Attachment[]���ͣ��ŵ�allParams��

		try {
			// ���ȣ��ж��Ƿ�multipart��������
			boolean isMultipart = ServletFileUpload.isMultipartContent(request);
			if (!isMultipart) {
				allParams = request.getParameterMap();
			} else {
				allParams = new HashMap();
				ServletFileUpload upload = new ServletFileUpload();
				FileItemIterator iter = upload.getItemIterator(request);
				while (iter.hasNext()) {
					FileItemStream item = iter.next();
					// �õ��?������
					String name = item.getFieldName();
					// �õ��?���ֵ������һ����������
					InputStream stream = item.openStream();

					// �������ͨ�?��
					if (item.isFormField()) {
						String value = Streams.asString(stream,
								request.getCharacterEncoding());
					} else { // ������ļ�
						if (stream.available() != 0) {// ����ļ���û��ѡ���ļ�������Դ���
							String filename = item.getName(); // �õ��ϴ����ļ����
							if (filename != null) {
								// ��Ϊ��IE���棬�ϴ����ļ������д��ļ��ڿͻ��˻�����·��
								// ���ԣ�Ҫ�����·��ȥ����ֻȡ�ļ���
								filename = FilenameUtils.getName(filename);
							}
							// ���ϴ��ļ�����������������̵��ļ���
后面还有 14 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。