我正在Web应用程序中实现文件上传.
前端用angularJS编写,并使用angular-file-upload包(可在此链接中找到的包https://github.com/nervgh/angular-file-upload).
后端是Java/Jersey Web Services.
上传的文件包含一个WebKitFormBoundary页眉和页脚,如下所示:
------WebKitFormBoundarylqskdjlqksdjl
Content-Disposition: form-data; name="upload"; filename="foo.bar"
Content-Type: multipart/form-data
Run Code Online (Sandbox Code Playgroud)
因此,我不确定我是上传文件还是请求.当然,我的后端应用程序认为上传的文件已损坏,除非删除这些行(现在手动),否则不会显示它们.
底线是:如何在上传的文件中删除页眉和页脚?
以下是一些代码示例.
再次:angularJS angular-file-upload
item.headers = {
'Content-Disposition': 'attachment; filename="' + item.file.name + '"',
'Content-Type': 'multipart/form-data'
};
Run Code Online (Sandbox Code Playgroud)
和Java/Jersey
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("someurl/{fileName}")
public Artifact uploadArtifact(InputStream uploadedStream, @PathParam("fileName") String fileName) throws Exception;
Run Code Online (Sandbox Code Playgroud)
我想知道Content-Disposition: attachment我的angularJS部分是否可能会弄乱它?
它应该是Content-Disposition: form-data吗?
Thx提前!
使用oauth2从Twitter获取数据,但得到的错误为:
必须在散列之前对Unicode对象进行编码
使用下面的代码,
def oauth_req(url, key, secret, http_method="GET", post_body="",http_headers=None):
consumer = oauth2.Consumer(key=API_KEY, secret=API_SECRET)
token = oauth2.Token(key=key, secret=secret)
client = oauth2.Client(consumer, token)
resp, content = client.request(url, method=http_method, body=post_body, headers=http_headers)
return content
data = oauth_req(url, TOKEN_KEY, TOKEN_SECRET)
Run Code Online (Sandbox Code Playgroud)
还尝试了我传递给def的变量的utf8编码值.
File "<pyshell#11>", line 1, in <module>
data = oauth_req(url, TOKEN_KEY, TOKEN_SECRET)
File "<pyshell#8>", line 6, in oauth_req
body=post_body, headers=http_headers)
File "C:\Python35-32\lib\site-packages\oauth2_init_.py", line 673, in request
req.sign_request(self.method, self.consumer, self.token)
File "C:\Python35-32\lib\site-packages\oauth2_init_.py", line 493, in sign_request
self['oauth_body_hash'] = base64.b64encode(sha1(self.body).digest())
TypeError: Unicode-objects must be encoded before hashing
Run Code Online (Sandbox Code Playgroud) 我有一个遗留类,有很多公共双字段.所有双字段都初始化Double.MAX_VALUE为表示它们是空的.(遗留序列化编码为忽略字段,如果字段等于则不进行序列化Double.MAX_VALUE).
我们现在尝试使用JAXB Marshaller将此类序列化为Xml.它工作正常,除了我们想要阻止为相等的字段生成Xml Double.MAX_VALUE.
我们没有使用单独的JAXB模式,只是用各种javax.xml.bind.annotation注释标记我们的类.如果使用模式,则可以添加<javaType>元素以指定自定义DataType转换器.有没有办法使用Annotations或以编程方式执行此操作?
在尝试下面推荐的方法后,我仍然无法XmlAdapter接受:
@XmlJavaTypeAdapters({
@XmlJavaTypeAdapter(value=EmptyDoubleValueHandler.class, type=Double.class), @XmlJavaTypeAdapter(value=EmptyDoubleValueHandler.class, type=double.class)})
package tta.penstock.data.iserver;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
Run Code Online (Sandbox Code Playgroud)
我的顶级课程是:tta.penstock.data.iserver.OrderBlotter,其中包含一个扩展的tta.penstock.data.iserver.OrderResponseWrappers列表com.eztech.OrderResponse.所有双字段都包含在com.eztech.OrderResponse.
我的单元测试代码执行以下操作:
JAXBContext context = JAXBContext.newInstance(new Class[] { OrderBlotter.class, OrderResponseWrapper.class, OrderResponse.class});
Marshaller marshaller = context.createMarshaller();
StringWriter stringWriter = new StringWriter();
marshaller.marshal(blotter, stringWriter);
System.out.println("result xml=\n" + stringWriter.toString());
Run Code Online (Sandbox Code Playgroud)
但双重值仍然没有得到处理XmlAdapter.我知道我遗漏了一些基本的东西,但我不确定它是什么.
代码似乎打破了session.connect.
com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
at com.jcraft.jsch.Session.connect(Session.java:534)
at com.jcraft.jsch.Session.connect(Session.java:162)
at session.connect in uploadFile(ftpService.java:280)
Run Code Online (Sandbox Code Playgroud)
码
try {
JSch jsch = new JSch();
Session session = null;
session = jsch.getSession(ftpUserName, ftpServer, 22);
session.setClientVersion("StrictHostKeyChecking");
//session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(ftpPassword);
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
//sftpChannel.get("remotefile.txt", "localfile.txt");
String path="C:\\srcFolder";
String remotePath="C:\\destFolder";
try {
sftpChannel.put(new FileInputStream(new File(path)), remotePath );
} catch (FileNotFoundException e) {
// TODO …Run Code Online (Sandbox Code Playgroud) 我看了一篇来自JavaDays的代码,作者说这种方法有概率非常有效,可以将类似String的字符串存储到String实习方法
public class CHMDeduplicator<T> {
private final int prob;
private final Map<T, T> map;
public CHMDeduplicator(double prob) {
this.prob = (int) (Integer.MIN_VALUE + prob * (1L << 32));
this.map = new ConcurrentHashMap<>();
}
public T dedup(T t) {
if (ThreadLocalRandom.current().nextInt() > prob) {
return t;
}
T exist = map.putIfAbsent(t, t);
return (exist == null) ? t : exist;
}
}
Run Code Online (Sandbox Code Playgroud)
请解释一下,这一行中概率的影响是什么:
if (ThreadLocalRandom.current().nextInt() > prob) return t;
Run Code Online (Sandbox Code Playgroud)
这是Java Days的原始演示文稿https://shipilev.net/talks/jpoint-April2015-string-catechism.pdf(56th slide)
我使用了文章http://www.devinline.com/2016/05/java-instrumentation-fundamental-part-1.html?m=1
我需要获取查询结果的大小。
但召唤的
long sizeOfObject = InstrumentationAgent.findSizeOfObject(myvar);
Run Code Online (Sandbox Code Playgroud)
返回错误
代理未初始化。
我有带有 throws 的类的 main 方法,Exception
您能给出正确语法的建议吗?
版本: 代理代码:
package org.h2.command;
import java.lang.instrument.Instrumentation;
import java.lang.instrument.UnmodifiableClassException;
public class InstrumentationAgent {
/*
* System classloader after loading the Agent Class, invokes the premain
* (premain is roughly equal to main method for normal Java classes)
*/
private static volatile Instrumentation instrumentation;
public static void premain(String agentArgs, Instrumentation instObj) {
// instObj is handle passed by JVM
instrumentation = instObj;
}
public static …Run Code Online (Sandbox Code Playgroud) 我正在使用python语言在RPi中实现SIM900接口.但是,在port.write()函数中发送字符串时出现问题.
这是我的代码:
# This line has to write on serial port
port.write(b'AT+SAPBR=3,1,"APN","TATA.DOCOMO.INTERNET"\r\n')
Run Code Online (Sandbox Code Playgroud)
以上行很好用......
现在我的要求是TATA.DOCOMO.INTERNET必须从命令行读取的字符串,我需要附加该字符串b'AT+SAPBR=3,1,"APN","xxxx"\r\n'.
但是当我试图将APN名称读入变量并且在追加它之后它不起作用时,代码行就是
# AP ="TATA.DOCOMO.INTERNET"-string read from serial input
AP = gsm.read()
t1 = "AT+SAPBR=3,1,"
t2 = '"APN",'
t3 = AP
t4 = '\r\n'
t = t1 + t2 + t3 + t4
Run Code Online (Sandbox Code Playgroud)
它在python中的输出如下:
AT+SAPBR=3,1,"APN","TATA.DOCOMO.INTERNET"\r\n'
Run Code Online (Sandbox Code Playgroud)
它看起来像我需要的行,但是当我在gsm.write(t)中写入时它会出错,我甚至尝试过
gsm.write(byte(t))
gsm.write(t.encode())
Run Code Online (Sandbox Code Playgroud)
但是,它仍然无效.
假设我有一个通用类Parcel和一个通用方法,如下面的代码所示.该方法打印并返回x,该方法在方法内分配了一个类型参数Integer.
public class Parcel<T> {
public <X> X deliver(){
X x = (X) new Integer(100);
System.out.println(x);
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
在main中,我通过传递一个类型参数Parcel来调用方法.但它仍然打印100.
public static void main(String args[]) {
Parcel<String> parcel = new Parcel<>();
System.out.println(parcel.<Parcel> deliver());
}
Run Code Online (Sandbox Code Playgroud)
接下来,在打印行中传递的类型参数Parcel不起任何作用,我在此预期会有异常.它是如何工作的 ?
在Ipython中进行数据分析时,我经常需要通过将其内容打印到shell来查看数据.Numpy只有在它们太长的时候才能显示巨大物体的边缘.我真的很喜欢ndarrays的这个功能,但是当我打印内部python对象(例如,带有15k对象的字典)时,它们会被转储到屏幕上,或者有时会以不太友好的方式被截断.因此,例如对于一个巨大的字典,我希望在输出中看到这样的东西
{ '39416' : '1397',
'39414' : '1397',
'7629' : '7227',
...,
'31058' : '9606',
'21097' : '4062',
'32040' : '9606' }
Run Code Online (Sandbox Code Playgroud)
如果可以处理对齐和嵌套数据结构,那将是完美的.它们是一个特殊的模块,可以为python基类(list,dict)提供这样的功能吗?或者有一些我一无所知的ipython配置技巧?
我用Java编写了这样的DTO类:
public class AnswersDto {
private String uuid;
private Set<AnswerDto> answers;
}
public class AnswerDto<T> {
private String uuid;
private AnswerType type;
private T value;
}
class LocationAnswerDto extends AnswerDto<Location> {
}
class JobTitleAnswerDto extends AnswerDto<JobTitle> {
}
public enum AnswerType {
LOCATION,
JOB_TITLE,
}
class Location {
String text;
String placeId;
}
class JobTitle {
String id;
String name;
}
Run Code Online (Sandbox Code Playgroud)
在我的项目中,Jackson库用于JSON的序列化和反序列化.
如何配置AnswersDto(使用特殊注释)或AnswerDto(注释)类,以便能够AnswersDto在其正文中正确地反序列化请求,例如:
{
"uuid": "e82544ac-1cc7-4dbb-bd1d-bdbfe33dee73",
"answers": [
{
"uuid": "e82544ac-1cc7-4dbb-bd1d-bdbfe33dee73",
"type": "LOCATION",
"value": …Run Code Online (Sandbox Code Playgroud) java ×7
python ×2
angularjs ×1
dictionary ×1
duplicates ×1
generics ×1
ipython ×1
jaxb ×1
jersey ×1
json ×1
printing ×1
python-3.x ×1
raspberry-pi ×1
serial-port ×1
sftp ×1
spring ×1
string ×1