背景:
我有一个我上传的文件,在此过程中,文件的链接存储在数据库中,而不是实际文件中,实际文件存储在文件系统中,目前将其存储在我的本地机器中。
目标:
我的目标是上传一个文件并正确下载一个包含特殊字符的文件 - #,$,%,@ etc.
问题:
我可以上传带有特殊字符的文件,但无法下载带有特殊字符的文件。此外,我无法对 进行任何更改,Download Servlet因为它是 的一部分Framework,所以我只能使用Upload Servlet,所以我的重点是以这种方式上传带有特殊字符的文件,以便我可以下载它们。
我已经尝试为文件名创建一个别名,其中我用'_'符号替换特殊字符,这种方法工作正常并且能够下载文件但文件的实际名称不在此处保留,文件名中的所有特殊字符都被替换为'_'符号,这是不可接受的,因为用户应该是文件的实际名称。
任何建议或方法:
代码:
public ModelAndView save(HttpServletRequest request, HttpServletResponse response, Object command,
ModelAndView modelView, BindException errors) throws Exception {
String newFileName = checkForSpecialCharsAndGetNewFileName(file.getOriginalFilename());
System.out.println("alias filename="+ newFileName);
String url = "f" + (String.valueOf(System.currentTimeMillis())) + "_" + newFileName;
String fileName = file.getOriginalFilename();
System.out.println("FileName "+ fileName);
}
//Code to replace all special characters in the incoming file with '_' symbol. …Run Code Online (Sandbox Code Playgroud) 我需要将超过10亿个密钥加载到Berkley DB中,因此我想提前调整它以获得更好的性能.使用标准配置,我现在花了大约15分钟加载1'000'000键,这太慢了.是否有适当的方法来调整例如Berkley DB的B + Tree(节点大小等...)?
(作为比较,在调整tokyo cabinet之后,它在25分钟内加载10亿个键).
PS我正在寻找调优技巧作为代码而不是为运行系统设置的参数(如jvm size等...)
这些天我一直遇到github的问题,我在github上创建了一个新的存储库,然后从本地机器我尝试将我的代码推送到github:
git remote add origin git@github.com:tmi/logger.git fatal: remote origin already exists git push origin master ssh: github.com:uhdyi: no address associated with name fatal: the remote end hung up unexpectedly ssh git -v OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Fed 2007 ssh: git: no address associated with name ssh git@github.com Enter passphrase for key '/c/Documents and Settings/tmi/.ssh/id_rsa': Error: HI, tmi! you've successfullly authenticated, but GitHub doesn not provide shell access connection to github.com closed git push origin master ssh: github.com:uhdyi: no address associated …
我正在尝试使用Roo中最新的GWT集成开发Spring Roo/GWT应用程序.
让脚手架工作是非常简单的,但我真的不明白RPC如何在那里工作.
有人可以提供一个简单的例子,说明如何在Spring Roo和GWT中连接客户端/服务器.
一开始会非常有帮助,因为我找不到任何资源.
thx&respect,Flo
我在Visual Studio中管理项目中的.dll引用时遇到了问题.所有已注册的.NET和COM引用都可以正常工作,但是当涉及到磁盘上的.dll文件时,如果我在磁盘上引用我的文件,我的同事将缺少引用,因为它们可能在磁盘上的不同位置等. Visual Studio有一个像$ PATH这样的环境变量,以便每台计算机都有路径,它会先说出它找不到引用之前的路径?或者将源控件中的.dll引用保留为更好的选项?
好吧,它运作得很好.在VS中,我只是在解决方案中添加了一个文件夹,将dll添加到文件夹中并将所有内容添加到源代码控制中.我在个别项目中提到了那些dll,当我从其他计算机获得最新版本时,它正确链接.多谢你们
我有一个简单的.net 3.5sp1 Windows应用程序(在C#中)充当UDP服务器.它侦听端口,从端点接收数据,然后将其接收的内容重新传输到另一个端点(即中继,用于直播数据流).我所经历的是在连接启动约20分钟后,它开始恶化.另外我注意到它每秒吞噬大约50-100K的内存,这在GC之后永远不会被释放.我必须关闭应用程序并重新启动它.不好.我已将问题缩小到以下代码,该代码将重新传输到另一端:
var sendBuffer = new byte[readCount];
Array.Copy(readData, sendBuffer, readCount);
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
args.RemoteEndPoint = p.EP;
args.SetBuffer(sendBuffer, 0, sendBuffer.Length);
SwitchWindow.LineSocket.SendToAsync(args);
Run Code Online (Sandbox Code Playgroud)
有没有人有使用SendToAsync的内存泄漏的经验?
更新:
初始化套接字时,我实例化一个状态对象(仅执行一次).state对象有一个名为"buffer"的属性,它是一个字节数组.我从套接字接收数据异步如下:
private void beginReceiveData(ref MessageState state)
{
var ipeSender = new IPEndPoint(IPAddress.Any, 0);
var epSender = (EndPoint)ipeSender;
state.workSocket = LineSocket;
state.EP = epSender;
state.workSocket.BeginReceiveFrom(state.buffer, 0, MessageState.BufferSize,
SocketFlags.None, ref epSender,
new AsyncCallback(ReceiveDataCB),
state);
}
Run Code Online (Sandbox Code Playgroud)
然后,在我的回调(ReceiveDataCB)上,我正在检索异步对象,然后将字节缓冲区传递给另一个函数进行处理,然后调用上面发布的代码以便重新传输到另一端(state.buffer变为readData) .
更新#2:
根据我的直觉,我将发送代码更改为以下内容,摆脱了SocketAsyncEventArgs和SendToAsync:
var sendBuffer = new byte[readCount];
Array.Copy(readData, sendBuffer, readCount);
SwitchWindow.LineSocket.BeginSendTo(
sendBuffer, 0, sendBuffer.Length, SocketFlags.None,
p.EP, new AsyncCallback(echoCB), null);
Run Code Online (Sandbox Code Playgroud)
当然,我添加了一个"echoCB"回调,除了调用EndSendTo之外什么都不做.内存泄漏现在消失了!我怀疑它与创建如此多的SocketAsyncEventArgs对象有关,并且异步函数挂在这些对象上,每个数据包一个(每秒33个数据包,可以快速加起来).我再次查看了SocketAsyncEventArgs的MSDN文档,我注意到在提供的服务器"示例"代码中,他们使用了一个SocketAsyncEventArgs对象池.我认为它的设计并不像我使用它那样.我认为重点是不必为每次调用实例化这些缓冲区等,因此重用它们并使服务器具有更好的性能.
我有一个包含1,000,000条记录的数据库和一个这样的查询:
select count(code) from table1
Run Code Online (Sandbox Code Playgroud)
它在本地系统上运行良好,但在网络上变得非常慢.其他查询如select * from table快速执行,但select count(code) from table1速度很慢.我无法改变数据库的结构.我的数据库是Foxpro,我使用的是VB.NET.
有解决方案吗?
编辑:我应该写这样的代码吗?
dim ds as new dataset
dim da as new datadapter("select count(*) from table ", connection)
da.fill(ds,"tbl1")
Run Code Online (Sandbox Code Playgroud)
那么我如何select count(code) from table1从数据集中获取?
或者我必须使用LINQ?
编辑2:我的意思是select count(*)和之间的比较select count(code).
解决办法是什么?
这个程序有什么问题?
#include <memory>
#include <vector>
int main()
{
std::vector<std::unique_ptr<int>> vec;
int x(1);
std::unique_ptr<int> ptr2x(&x);
vec.push_back(ptr2x); //This tiny command has a vicious error.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误:
In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0,
from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48,
from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64,
from main.cpp:6:
c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = std::unique_ptr<int>, _Tp* = std::unique_ptr<int>*]':
c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/stl_vector.h:745:6: instantiated from 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::unique_ptr<int>, _Alloc = std::allocator<std::unique_ptr<int> >, value_type = std::unique_ptr<int>]'
main.cpp:16:21: instantiated from here
c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h:207:7: error: deleted function 'std::unique_ptr<_Tp, _Tp_Deleter>::unique_ptr(const …Run Code Online (Sandbox Code Playgroud) .net ×1
asynchronous ×1
browser ×1
c ×1
c# ×1
c++ ×1
c++11 ×1
dll ×1
foxpro ×1
git ×1
github ×1
gwt ×1
gwt-rpc ×1
java ×1
networking ×1
p2p ×1
performance ×1
reference ×1
sendto ×1
servlets ×1
sockets ×1
spring ×1
spring-mvc ×1
spring-roo ×1
stl ×1
unique-ptr ×1
vb.net ×1