TEMPORARY求助: 在Apache FileUpload API中关闭了InputStream
我想读取content-disposition头的内容,但request.getHeader ("content-disposition")总是返回null,request.getHeader ("content-type")只返回第一行,就像这样multipart/form-data; boundary=AaB03x.
我接到以下标题:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
Run Code Online (Sandbox Code Playgroud)
我想阅读所有内容处置标头.怎么样?
谢谢.
编辑1:我真正想要解决的是当客户端发送超过最大大小的文件时的问题,因为当你调用request.getPart("something")时,你传递给它的部分名称并不重要,因为它总是会即使请求不包含此参数名称,也会抛出IllegalStateException.
例:
Part part = request.getPart ("param");
String value = getValue (part);
if (value.equals ("1")){
doSomethingWithFile1 (request.getPart ("file1"))
}else if (value.equals (2)){
doSomethingWithFile2 (request.getPart ("file2"))
}
private String getValue (Part part) throws IOException{
if (part == null) return null;
BufferedReader in …Run Code Online (Sandbox Code Playgroud) tl; dr为什么在json文件中存储配置数据被认为是事实上的标准?
我最近阅读了可维护的Javascript书的一些部分,特别是存储配置数据章节.
这是本章的引用:
配置数据最好存储在单独的文件中,以便在它与应用程序逻辑之间创建一个干净的分离.一个很好的起点是为配置数据提供单独的JavaScript文件.一旦配置数据位于单独的文件中,它就为管理该数据提供了更多可能性.一个有价值的选择是将配置数据移动到非JavaScript文件中.
即使您正在编写JavaScript应用程序,JavaScript也不是存储配置数据的好方法.那是因为语法仍然是编程语言的语法,因此您需要确保没有引入语法错误.
他基本上说将配置数据存储在.json文件或.js文件中是一种不好的做法,应该避免.
来自json.org:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.
交换意味着我发送和接收数据,以格式良好的方式传达两个进程.
很多人将数据存储在json文件中,这会增加很多噪音:花括号,缩进,双引号,逗号,无法写注释等.
Java使用键值行,是否有更简单的方法来存储这些数据?
a 1
Run Code Online (Sandbox Code Playgroud)
并使用json格式(1):
{
"a": 1
}
Run Code Online (Sandbox Code Playgroud)
并使用js格式(2):
module.exports = {
a: 1
}
Run Code Online (Sandbox Code Playgroud)
Microsoft喜欢使用.ini文件,这些文件会向这些键值行添加部分.
Unix配置文件也使用键值行.
然后,如果全世界都使用键值行,因为它们很容易被人类读/写,为什么json文件在node.js世界中是事实上的标准呢?请不要告诉我,因为json和javascript实际上是同义词,因为开发人员太懒了,而且更喜欢打电话require("./config.json").
在上面的例子中,第一个选项(1)的诞生是为了简化数据的可互换性.第二,imo,这很糟糕.这与在Java类中存储配置数据相同.如果我想从php读取这个文件,因为我有一个apache服务器和nodejs用于实时的东西,我应该如何解析该文件?我需要一个javascript解析器.
两个选项都不应该有语法错误,否则程序可能会崩溃.
我有一个servlet,它发送一个utf-8编码的字符串.我也有一个用apache httpcomponents库编写的客户端.
我的问题是在utf-8中阅读回复.某些特殊字符(如ñ或ç)无法正确读取.如果我使用发送请求的html页面测试服务器,则字符串是正确的,编码是UTF-8而没有BOM.
一些片段: Servlet
response.setContentType ("application/json; charset=UTF-8");
PrintWriter out = response.getWriter ();
out.write (string);
Run Code Online (Sandbox Code Playgroud)
客户
entity = response.getEntity ();
entity.getContentEncoding (); //returns null
resultado = EntityUtils.toString (entity, HTTP.UTF_8); //Some characters are wrong
Run Code Online (Sandbox Code Playgroud)
有没有人有同样的问题?
已解决:对不起,客户端和服务器工作正常.我正在写一个Android应用程序,似乎logcat(我打印消息的地方)不支持utf-8编码.
如何在循环中多次读取回车键?
我试过以下没有结果。
char c;
for (i=0; i<n; i++){
c = getchar ();
fflushstdin ();
if (c == '\n'){
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
和 fflushstdin:
void fflushstdin (){
int c;
while ((c = fgetc (stdin)) != EOF && c != '\n');
}
Run Code Online (Sandbox Code Playgroud)
如果我读取任何其他字符而不是 Enter 键,它可以完美运行,但是使用 Enter 键在某些迭代中,我必须按 Enter 2 次。
谢谢。
编辑:我正在通过 Windows 上的腻子执行程序,并且该程序在虚拟机上的虚拟化 linux mint 上运行。
因为node.js不提供在Windows上检索和修改文件属性的方法,所以我需要执行子进程.我想获取所有文件属性,即:
如果我要执行子进程,我不想调用fs.stat,因为它是一个额外的I/O访问(并且Stats不会在windows上提供太多信息).如果我执行子进程,我想一次检索所有数据.
所以,我写了一个PowerShell脚本:
var cmd = "powershell -Command \"$item=get-item a -force;[bool]($item.attributes -band [io.fileattributes]::directory);[bool]($item.attributes -band [io.fileattributes]::archive);[bool]($item.attributes -band [io.fileattributes]::reparsepoint);[bool]($item.attributes -band [io.fileattributes]::hidden);[bool]($item.attributes -band [io.fileattributes]::readonly);[bool]($item.attributes -band [io.fileattributes]::system);$item.length;$tmp=$item.creationtime;$tmp.year;$tmp.month;$tmp.day;$tmp.hour;$tmp.minute;$tmp.second;$tmp.millisecond;$tmp=$item.lastaccesstime;$tmp.year;$tmp.month;$tmp.day;$tmp.hour;$tmp.minute;$tmp.second;$tmp.millisecond;$tmp=$item.lastwritetime;$tmp.year;$tmp.month;$tmp.day;$tmp.hour;$tmp.minute;$tmp.second;$tmp.millisecond;$s\"";
Run Code Online (Sandbox Code Playgroud)
这将返回:(一旦在JavaScript中被分裂:split("\r\n"))
[ 'False', //directory?
'True', //archive?
'False', //symlink?
'False', //hidden
'False', //readonly?
'False', //system?
'3', //length (if directory, empty string)
'2012', //creation time, year
'11', //creation time, month
'18', //creation time, day
'6', //creation time, hour
'8', //creation time, min
'44', //creation time, ysec
'457', //creation time, millis …Run Code Online (Sandbox Code Playgroud) 我有一个对象,例如:
var o = {
a: 1
};
Run Code Online (Sandbox Code Playgroud)
用户:
o.a = 2;
Run Code Online (Sandbox Code Playgroud)
如何知道o对象是否已被修改?我无法触摸o物体,所以我无法使用Object.defineProperties().
如果使用标志配置并安装nginx,--with-http_gzip_static_module则打开静态gzipping gzip_static on;.
当nginx收到文件请求时,使用静态gzip,它会尝试读取并返回扩展名为".gz"的同一文件.
我的问题是:这似乎是比用户执行请求时压缩文件更好的选择,因为文件已经被gzip压缩了,对吧?你赢得速度,你可以更快地提供文件.现在我已经gzipped字体文件,我发送给用户一个包含所有js(连接,缩小和gzip)的捆绑包和所有css的另一个捆绑包.我是否也应该预先gzip图像?
请考虑以下示例JSON数组:
[{
info: {
refOne: 'refOne',
refTwo: [{
refOne: 'refOne',
refTwo: 'refTwo'
}]
}
}, {
info: {
refOne: 'refOne',
refTwo: [{
refOne: 'refOne',
refTwo: 'refTwo'
}]
}
}]
Run Code Online (Sandbox Code Playgroud)
上面的JSON是数据库查询响应的简单表示,Nodejs在父信息数组中循环遍历每个'refTwo'数组的正确方法是什么?
sudo示例:对于当前项目中每个refTwo项目的样本JSON中的每个项目执行某些操作
我怀疑这里可能需要'async'lib,但是非常感谢一些建议.
我的意思是,在定义中.如果我有一个实现接口的类的方法,并且我想抛出异常,如果接口没有throws声明,我怎么能这样做.
谢谢
如果我将字符写入é文件并用十六进制编辑器打开它,我可以看到字节0xC3,0xA9.
从维基百科,第一个字节称为前导字节,第二个字节称为尾随字节.0xC3它是一个元数据字节,这意味着,它的1个字节,0xA9,但对于Unicode值编码的字符é是0xE9.
我基本上想知道é它为什么用0xA9而不是0xE9编码.文本编辑器如何从0xC3A9转换为0xE9?任何轮班操作?
node.js ×4
java ×3
javascript ×3
servlets ×2
utf-8 ×2
apache ×1
c ×1
cmd ×1
encoding ×1
exception ×1
http-headers ×1
httpclient ×1
interface ×1
json ×1
multipart ×1
nginx ×1
powershell ×1
unicode ×1
windows ×1