我一直试图用Turbogears 2来制定管理文件上传的"最佳实践"方法,到目前为止还没有真正找到任何例子.我已经找到了实际上传文件的方法,但我不确定它有多可靠.
另外,获取上传文件名的好方法是什么?
file = request.POST['file']
permanent_file = open(os.path.join(asset_dirname,
file.filename.lstrip(os.sep)), 'w')
shutil.copyfileobj(file.file, permanent_file)
file.file.close()
this_file = self.request.params["file"].filename
permanent_file.close()
Run Code Online (Sandbox Code Playgroud)
所以假设我理解正确,这样的事情会避免核心'命名'问题吗?id = UUID.
file = request.POST['file']
permanent_file = open(os.path.join(asset_dirname,
id.lstrip(os.sep)), 'w')
shutil.copyfileobj(file.file, permanent_file)
file.file.close()
this_file = file.filename
permanent_file.close()
Run Code Online (Sandbox Code Playgroud) 我正在开发一个MVC .Net站点,并希望实现一个CMS系统.到目前为止,我已经看过Umbraco,看起来不错,但是帮助很差,并且开始视频部分是空的,而dotnetnuke,再次看起来不错,但我得到的印象是针对非开发人员,加上比我更多需要和想要.
在我上一份工作中,我创建了一个基本的自定义CMS系统,只需将值添加到数据库中,应用程序就可以从那里调用文本.它工作正常,但我没有源代码.
我所追求的是一个简单的CMS系统,它真的只是控制文本和图像,我不需要umbraco和dotnetnuke中的所有花哨的东西,我自己可以做的所有设计和CSS.
同时我正在使用MVC(这是非常棒的,与我必须在工作中忍受的网络表格/ telerik垃圾相比,这种呼吸新鲜空气)它需要兼容.
一个简单的CMS,任何人都可以提供任何建议吗?
Truegilly
有一个问题已经被问到将负载字节实现到单周期数据路径而不必更改数据存储器,解决方案如下.
替代文字http://img214.imageshack.us/img214/7107/99897101.jpg
这实际上是一个非常现实的问题; 大多数存储器系统完全基于字,并且单个字节通常仅在处理器内部处理.当您在许多计算机上看到"总线错误"时,这通常意味着处理器尝试访问未正确字对齐的内存地址,并且内存系统引发了异常.无论如何,因为字节地址可能不是4的倍数,所以我们不能直接将它们传递给内存.但是,我们仍然可以得到任何字节,因为每个字节都可以在某个字中找到,所有字地址都是4的倍数.所以我们要做的第一件事就是确保我们得到正确的字.如果我们取地址的高30位(即ALUresult [31-2])并将它们与低端的两个0位组合(这就是"左移2"单元真正做的那样),我们有包含所需字节的字的字节地址.这只是字节自己的地址,向下舍入到4的倍数.这个改变意味着lw现在也会将地址舍入到4的倍数,但这没关系,因为非对齐地址无论如何都不适用于lw单元.好的,现在我们从内存中获取数据字.我们如何得到我们想要的字节?好吧,请注意,字中字节的字节偏移量仅由字节地址的低2位给出.因此,我们只需使用这两个位来使用多路复用器从字中选择适当的字节.注意使用big-endian字节编号,适用于MIPS.接下来,我们必须将字节零扩展到32位(即,只将其与高端的24个零组合),因为问题指定这样做.实际上,在这个问题中这是一个轻微的错误:实际上,lbu指令对字节进行零扩展,但是lb符号扩展它.那好吧.最后,我们必须扩展MemtoReg控制的多路复用器以接受一个新输入:lb情况的零扩展字节.MemtoReg控制信号必须加宽到2位.原始的0和1情况分别变为00和01,我们添加了一个新的情况10,仅用于lb的情况.
即使在阅读了解释之后,我也不太明白它是如何工作的,特别是关于左移ALU结果为2会给出字节地址......这怎么可能?所以,如果我想加载一个半字,那么我会做一个左移,我会得到半个字的地址?什么是更好的方法来加载字节,通过修改数据内存加载半字?(上面的问题提出了我们无法修改数据存储器的约束)
我正在尝试登录vbulletin论坛.我到目前为止:
private string login(string url, string username, string password)
{
string values = "vb_login_username={0}&vb_login_password={1}"
values += "&securitytoken=guest&cookieuser=checked&do=login";
values = string.Format(values, username, password);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
CookieContainer a = new CookieContainer();
req.CookieContainer = a;
System.Net.ServicePointManager.Expect100Continue = false; // prevents 417 error
using (StreamWriter writer = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII))
{ writer.Write(values); }
this.response = (HttpWebResponse)req.GetResponse();
StringBuilder output = new StringBuilder();
foreach (var cookie in response.Cookies)
{
output.Append(cookie.ToString());
output.Append(";");
}
return output.ToString();
}
Run Code Online (Sandbox Code Playgroud)
看起来我正在登录,但是当我下载页面时,我找不到我的用户名.
你们看到我可能做错了吗?
提前致谢!
我正在编写一个具有缩放和平移功能的WPF应用程序,但我想要实现的是能够"自动"缩放和平移(通过按钮单击).
我有所有定义的方法来缩放和平移,但我无法告诉应用程序所需的平移的X/Y坐标.
基本上,我知道我希望控件以所需的缩放级别为中心(比如放大6倍),但是平移目标点不是控件的中心点,因为在缩放之后,它已被缩放.
有没有人知道计算所需的X/Y位置的方法,同时考虑到缩放?我只是缩放所需的目标点吗?它似乎对我不起作用......
非常感谢
编辑 - 已完成 -
这是现在我的工作正常:)
<Canvas x:Name="LayoutRoot" Background="{DynamicResource WindowBackground}" Width="1024" Height="768">
<Canvas x:Name="ProductCanvas" Width="1024" Height="768">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform />
</TransformGroup>
</Canvas.RenderTransform>
<Rectangle x:Name="r1" Fill="White" Stroke="Black" Width="180" Height="103.5" Canvas.Left="131.5" Canvas.Top="121.5" MouseDown="r1_MouseDown"/>
<Rectangle x:Name="r2" Fill="#FF942222" Stroke="Black" Width="180" Height="103.5" Canvas.Left="617.5" Canvas.Top="121.5" MouseDown="r2_MouseDown"/>
<Rectangle x:Name="r3" Fill="#FF2B1E9F" Stroke="Black" Width="180" Height="103.5" Canvas.Left="131.5" Canvas.Top="408" MouseDown="r3_MouseDown"/>
<Rectangle x:Name="r4" Fill="#FF1F6E1D" Stroke="Black" Width="180" Height="103.5" Canvas.Left="617.5" Canvas.Top="408" MouseDown="r4_MouseDown"/>
</Canvas>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
- - C# - -
private void r1_MouseDown(object sender, MouseButtonEventArgs e1)
{
Rect …Run Code Online (Sandbox Code Playgroud) 我正在学习命名管道,并且正在使用来自MSDN doc的命名管道客户端和服务器示例:
我修改了客户端,因此我可以在控制台中键入消息并将它们发送到显示消息的服务器并发回回复.本质上我添加了一个循环,它在SetNamedPipeHandleState()调用之后开始并在CloseHandle()调用之前结束(即在循环外发生打开和关闭,所以我在循环中使用相同的管道句柄).
我的问题是,如果我杀了客户端(通过关闭它或通过任务管理器结束它)是否有任何方法让服务器端检测断开连接?
我尝试使用GetNamedPipeHandleState()希望它返回失败,并且对GetLastError()的调用将返回ERROR_PIPE_NOT_CONNECTED,但事实并非如此.由于设置此服务器的方式,我必须在CompletedReadRoutine函数中执行此操作并创建"受控"故障.我做的是,在服务器的CompletedReadRoutine上有一个断点:
对GetNamedPipeHandleState()的调用成功返回,因此我从未进行过GetLastError()调用.当它到达WriteFileEx调用时它失败并且在那时对GetLastError的调用返回ERROR_NO_DATA.
看管道功能,我看不到任何可能有用的东西.我遗漏了一些东西,或者客户端断开连接只是检测不到.
我能想到的另一件事是收集连接客户端的pid(通过GetNamedPipeClientProcessId)并关闭看门狗线程以检查它们是否仍然存活.虽然,只是考虑这样做会引发我的蜘蛛般的感觉.
有没有办法在使用命名管道时检测断开连接的客户端?
是否有指向WiX bin目录路径的环境变量?我想在我的项目的后期构建事件中使用火炬,但我找不到这个变量.我无法对路径进行硬编码,因为wixproj由group共享.
$(WixTargetsPath)和$(WixTasksPath)等变量用于MSBuild.这些不是我想要的.
谢谢!
我有一个自定义的UIViewController子类,它被推送到UINavigationController堆栈上.我想在初始化/推送时添加一些我自己的数据.我是不是该
a)用我的数据作为参数写一个自定义的init方法,像这样?
MyCustomViewControllerSubclass.m:
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)bundle myCustomData:(NSData *)data{
if(self = [super initWithNibName:nibName bundle:nibName]){
//do stuff with my data
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
或者b)在我的viewcontroller中添加一个属性来存储我的自定义数据,然后在初始化后添加它?
在这些方法之一中是否存在一些优势/劣势,还是有另一种方法可以做到这一点?
回复非常高兴!
什么是在python中将int's,long's,double's转换为字符串,反之亦然的最佳方法.
我循环遍历列表并将long传递给应该转换为unicode字符串的dict.
我做
for n in l:
{'my_key':n[0],'my_other_key':n[1]}
Run Code Online (Sandbox Code Playgroud)
为什么一些最明显的事情如此复杂?