我试图伪造文件上传而不实际使用用户的文件输入.文件的内容将从字符串动态生成.
这可能吗?有没有人曾经这样做过?有可用的例子/理论吗?
为了澄清,我知道如何使用隐藏的iframe和朋友使用AJAX技术上传文件 - 问题是上传不在表单中的文件.
我正在使用ExtJS,但是由于ExtJS可以插入它(ext-jquery-base),因此jQuery也是可行的.
显然我没有正确使用这个测试夹具.我的servlet在tomcat中运行得很好,但是当我尝试使用这个模拟时,找不到多部分边界."请求被拒绝,因为没有找到多部分边界".
有一个答案在这里,说明如何使用该使用文本文件,但这个问题的答案明确规定的边界线并嵌入文件作为测试.我想我不需要手工处理像mockrequest.addFile(...)这样的方法
我没有在这里设置什么或者我怎么做错了?
@org.testng.annotations.Test
public void testDoPost() throws Exception
{
MockMultipartFile file = new MockMultipartFile("test.zip", "test.zip", "application/zip", MyServletTest.class.getResourceAsStream("/test.zip"));
MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest();
mockRequest.addFile(file);
mockRequest.set
mockRequest.setMethod("POST");
mockRequest.setParameter("variant", "php");
mockRequest.setParameter("os", "mac");
mockRequest.setParameter("version", "3.4");
MockHttpServletResponse response = new MockHttpServletResponse();
new MyServletTest().doPost(mockRequest, response);
// BOOM !
}
Run Code Online (Sandbox Code Playgroud)
这是例外
Caused by: blablah: the request was rejected because no multipart boundary was found
Run Code Online (Sandbox Code Playgroud) 在我的问题之前有一点历史,我发布了一个关于使用HTML5的multipart/form-data将多个文件上传到coldfusion的问题.它工作得很漂亮. 你能否从CF10编译器中看到代码?
我们的客户端终于要求对我放在一起的RESTful函数进行一些单元测试,并且我已经完成了很多工作,但是我已经遇到了上面设计的massUpload函数的障碍.
对于长期问题,请记下与问题相关的问题.
这是有问题的代码:
单元测试代码:
//Outside class calling sendHTTPrequest
HashMap<String,String> map = new HashMap<String,String>();
HashMap<String,File> getFiles = getFirstFileList();
map.put("testMethod", "massUploadTest");
map.put("method", "massUpload");
map.put("valueString1", valueString1);
map.put("valueString2", valueString2);
map.put("valueNumeric3", valueNumeric3);
map.put("valueBoolean4", valueBoolean4);
map.put("valueString5", valueString5);
map.put("valueBoolean6", valueBoolean6);
map.put("valueString7", valueString7);
try {
sendHTTPrequest(map, getFiles);
} catch(RuntimeException e) {
throw new RuntimeException("Fatal error in massUpload\n"
+ e.getMessage());
}
//End Call class code
Run Code Online (Sandbox Code Playgroud)
Coldfusion功能:
<cffunction name="massUpload" access="remote" returntype="string">
<cfargument name="valueString1" type="string" required="false">
<cfargument name="valueString2" type="string" required="false">
<cfargument name="valueNumeric3" type="numeric" required="false" default=0>
<cfargument name="valueBoolean4" type="boolean" required="true" …Run Code Online (Sandbox Code Playgroud) 我在 stackoverflow 中浏览了许多关于这个特定主题的文章,经过详细分析后,我终于敢于发布关于同一主题的另一个问题。
我认为我想在这里做的事情很明显,
我想要什么?
我想上传一个文件。我正在使用 angularjs 和 Spring MVC。
来源 :
控制器@Spring:
@RequestMapping(value="/upload", method=RequestMethod.POST, consumes = {"multipart/form-data"})
public String handleFileUpload(@RequestParam(value = "file") MultipartFile file){
String name="";
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(new File(name)));
stream.write(bytes);
stream.close();
return "You successfully uploaded " + name + "!";
} catch (Exception e) {
return "You failed to upload " + name + " => " + e.getMessage();
}
} else {
return "You failed …Run Code Online (Sandbox Code Playgroud) java ×2
javascript ×2
unit-testing ×2
angularjs ×1
coldfusion ×1
extjs ×1
file-upload ×1
http ×1
multipart ×1
pdf ×1
post ×1
servlets ×1
spring ×1
spring-mvc ×1
spring-test ×1