问题列表 - 第30796页

Apache Commons文件上传 - Stream意外结束

好吧,我不得不说到目前为止,这个让我难过.我们在Tomcat 6.0.18中运行的Web应用程序在文件上载期间失败,但仅当客户端计算机是Windows计算机时,仅适用于某些计算机,并且适用于所有浏览器,而不仅仅是IE.

日志中有一个堆栈跟踪,这似乎表明客户端关闭了连接,或者流以某种方式被破坏.堆栈跟踪的根本原因如下:

Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
    at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:983)
    at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
    at java.io.InputStream.read(InputStream.java:85)
    at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
    at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:362)
    ... 70 more
Run Code Online (Sandbox Code Playgroud)

导致跟踪的代码看起来相当直接.

private Map<String, Object> getMap( ActionRequest request ) {

    HashMap<String, Object> parameters = new HashMap<String, Object>();
    if ( request == null ) {
        return parameters;
    }

    if ( request.getContentType() == null ) {
        return parameters;
    }

    try {
        if(PortletFileUpload.isMultipartContent(request)){
            DiskFileItemFactory factory = new DiskFileItemFactory();
            PortletFileUpload upload = new PortletFileUpload(factory);
            List<DiskFileItem> fileItems = upload.parseRequest(request);
            for( …
Run Code Online (Sandbox Code Playgroud)

java apache upload file-upload tomcat6

5
推荐指数
0
解决办法
1万
查看次数

一个进程在Windows中崩溃..崩溃转储位置

由于某种原因,Windows进程崩溃了.我需要分析崩溃转储.

在Windows 2003中,PC运行状况帮助我们找到了故障转储文件.

如何在Windows 2008中获取故障转储文件位置?

crash-dumps windows-server-2008

24
推荐指数
4
解决办法
10万
查看次数

有没有一种简单的方法来在C#中更改字符串中的字符?

我想做这个:

string s = "abc";
s[1] = 'x';
Run Code Online (Sandbox Code Playgroud)

s将成为"axc".但是,似乎string [i]只有一个getter并且没有setter.编译器给我以下错误:

"属性或索引器'string.this [int]'无法分配给 - 它是只读的"

我想我可以制作一个循环并改变我想要的字符.但我只是想知道是否有一个简单的方法来做到这一点?为什么没有字符串[i]的setter?

提前致谢.

c# string char

8
推荐指数
2
解决办法
5280
查看次数

使用来自外部JS文件的Google Analytics异步代码

我正在尝试将异步版Google Analytics跟踪代码添加到网站中.

我想将JavaScript保存在一个单独的文件中,并从那里调用它.

这是我目前在.js文件中得到的内容:

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function loadtracking() {
    var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
        _gaq.push(['_trackPageview']);

        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
}

addLoadEvent(loadtracking);
Run Code Online (Sandbox Code Playgroud)

这就是我在<head>母版页面标签中的内容:

<script …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous google-analytics unobtrusive-javascript

30
推荐指数
2
解决办法
2万
查看次数

TortoiseHg和一个回购中的多个分支

我真的无法弄明白.我是Mercurial和TortoiseHg的新手.阅读了很多文档,仍然无法找到答案.我知道分支的一种方法是制作副本.多数民众赞成,但有另一种称为"命名分支"的方式,但这是我无法理解的一件事.

例如,我有新的repo第一个分支被称为"默认".然后我添加了3个名为"test1 ... 3"的分支.现在在repo浏览器中我有这样的树:

* test3
|
* test2
|
* test1
|
* default
Run Code Online (Sandbox Code Playgroud)

如何实现这样的事情:

* test 1 
|  _______* test 2
| | ______* test 3
| ||
|//
* default
Run Code Online (Sandbox Code Playgroud)

分支到"branch3"后如何切换回"默认".添加一些东西后提交并切换回"branch3"?

mercurial branch tortoisehg

12
推荐指数
1
解决办法
6608
查看次数

Sagepay 5006错误代码修复

任何人都可以告诉我为什么sagepay抛出5006(无法重定向到供应商的网站.),我可以将交易发布到sagepay并且能够在sagepay结束时提供信用卡信息.但是,我的问题是,一旦它返回我的通知页面,它会抛出错误5006.

我无法达到我的成功或失败的URL.

php payment payment-gateway opayo

4
推荐指数
1
解决办法
1万
查看次数

如果返回类型是可枚举的,则返回列表是错误的

我经常遇到想要Enumerable<T>从方法或属性返回的情况.为了构建返回Enumerable<T>,我使用List<T>-instance.填写列表后,我返回列表.

我一直认为这就够了.但它存在这样的可能性:调用者将结果投射Enumerable<T>List<T>并开始进一步使用它.如果稍后我更改了我的方法的实现,则调用者的代码将失败.为了避免这种情况,我可以返回list.ToArray或制作一个只读列表,然后再将其返回给调用者.但对我来说,这似乎是一个很大的矫枉过正.你怎么看?

请注意,我永远不会返回内部使用的列表,以便调用者可以更改我的对象内部状态.问题只是关于一个简短的生活清单,它是临时建立的,用于保存返回值.

IEnumerable<string> GetAList() {
    List<string> aList = new List<string>();
    aList.Add("a");
    aList.Add("b");
    return aList;
}

IEnumerable<string> GetAList() {
    List<string> aList = new List<string>();
    aList.Add("a");
    aList.Add("b");
    return aList.ToArray<string>();
}
Run Code Online (Sandbox Code Playgroud)

这些例子非常简单,在这种情况下,我会从一开始就使用数组,但它只是为了解释这个问题.

c#

13
推荐指数
3
解决办法
351
查看次数

在iOS中本地化字符串:默认(后备)语言?

有没有办法设置在应用程序不支持设备UI语言时使用的默认语言?

示例:我的应用已本地化为英语和德语:

// en.lproj:
"POWER_TO_THE_PEOPLE_BTN" = "Power";
"POWER_PLUG_BTN" = "Power";

// de.lproj:
"POWER_TO_THE_PEOPLE_BTN"  = "Macht";
"POWER_PLUG_BTN" = "Spannung";
Run Code Online (Sandbox Code Playgroud)

现在,如果我在设置为Italian应用程序的UI语言的设备上运行应用程序将使用键字符串POWER_TO_THE_PEOPLE_BTNPOWER_PLUG_BTN.

必须有一种方法来指定应用程序在这种情况下使用的默认(回退)语言.

从上面的例子中可以清楚地看出,使用英文字符串作为键是行不通的.

我现在看到的唯一选择是使用NSLocalizedStringWithDefaultValue而不是NSLocalizedString.

localization internationalization ios

39
推荐指数
4
解决办法
3万
查看次数

有关volatile关键字的问题

我知道volatile关键字,

volatile int k=7; 
Run Code Online (Sandbox Code Playgroud)

我们提示编译器可以随时更改变量但是简单 int k=7呢?我们可以随时更改它,因为它不是恒定的吗?有什么不同吗?

c++

5
推荐指数
2
解决办法
788
查看次数

格式化文件大小为MB,GB等

我需要使用合理的单位将文件大小显示为String.

例如

1L ==> "1 B";
1024L ==> "1 KB";
2537253L ==> "2.3 MB"
Run Code Online (Sandbox Code Playgroud)

等等

我找到了之前的答案,我觉得并不令人满意

我提出了自己的解决方案,它有类似的缺点:

private static final long K = 1024;
private static final long M = K * K;
private static final long G = M * K;
private static final long T = G * K;

public static String convertToStringRepresentation(final long value){
    final long[] dividers = new long[] { T, G, M, K, 1 };
    final String[] units = new String[] …
Run Code Online (Sandbox Code Playgroud)

java string format numbers

120
推荐指数
3
解决办法
9万
查看次数