Firefox 3.6引入了[常规类型="文件"输入元素的多个属性]( http://hacks.mozilla.org/2009/12/multiple-file-input-in-firefox-3-6/).
我不能让Perl处理这些字段.我可以在列表上下文中调用该字段,如下所示:
my @files = $CGIobject->param("File_Input");
Run Code Online (Sandbox Code Playgroud)
通过它循环将给我文件名作为字符串,但没有别的.
任何建议都会受到欢迎.
这是HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Multiple file upload test</title>
</head>
<body>
<form action="deliberately_obfuscated"
method="post"
enctype="multipart/form-data">
<input type="file"
name="multiple_files"
multiple="true"/>
<button type="submit">Submit</button>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是Perl:
#!/usr/bin/perl
#use strict;
#use warnings;
use CGI;
my $CGIo = new CGI;
print $CGIo->header();
@lightweight_fh = $CGIo->upload('myfiles');
# undef may be returned
# if it's not a
# valid file handle
if (@lightweight_fh) {
# Upgrade the handle …Run Code Online (Sandbox Code Playgroud) 我有大约40个单独的javascript文件的大型解决方案,通过特殊的js-service引用网页.我想在VS2010中使用新的IntelliSense功能,但很难添加大约40个单独的引用,如下所示:
/// <reference path="../../lib/jquery-1.3.2.js" />
Run Code Online (Sandbox Code Playgroud)
解决方案中的每个js文件.也许有一些方法来引用文件夹中的所有文件?我尝试过这样的事情:
/// <reference path="../../lib/*.*" />
Run Code Online (Sandbox Code Playgroud)
但它不起作用......谢谢.
更新: 也许有一些加载项,这有助于此吗?
我还处于关于单元测试的学习阶段,特别是关于模拟(我正在使用PascalMock和DUnit框架).我现在偶然发现的一件事是,我找不到将测试类/接口的硬编码实现细节硬编码到我的单元测试中的方法,这只是感觉不对...
例如:我想测试一个实现非常简单的接口的类,用于读取和编写应用程序设置(基本上是名称/值对).呈现给消费者的界面完全不知道实际存储值的位置和方式(例如,注册表,INI文件,XML,数据库等).当然,访问层是由一个不同的类实现的,该类在构造时被注入到测试类中.我为这个访问层创建了一个模拟对象,现在我可以完全测试接口实现类,而无需实际读取或写入任何注册表/ INI文件/任何内容.
但是,为了确保模拟行为与被测试类访问时的真实行为完全相同,我的单元测试必须通过非常明确地定义预期的方法调用和测试类所期望的返回值来设置模拟对象.这意味着如果我必须更改访问层的接口或测试类使用该层的方式,我还必须更改内部使用该接口的类的单元测试,即使接口我实际上测试的类没有改变.这是我在使用模拟时必须要使用的东西,还是有更好的方法来设计避免这种情况的类依赖性?
我有以下场景:
sub_1 can run immediately
sub_2 can run immediately
sub_3 can run only after sub_1 finishes
sub_4 can run only after sub_1 finishes
sub_5 can run only after sub_2 finishes
sub_6 can run only after sub_2 finishes
sub_7 can run only after both sub_1 and sub_2 finish
sub_8 can run only after both sub_1 and sub_2 finish
Run Code Online (Sandbox Code Playgroud)
我希望每个子程序尽快开始运行,而不是等待所有子程序完成。
我非常感谢您帮助为这个简单的场景创建一个干净的解决方案——我是多线程的新手。
我不确定它是否有所不同,但这些潜艇都在一个对象中。
我通常List<T>用于收藏.但是,如果我需要对集合进行快速查找,那么例如在下面的示例中,我将使用一个字典,以便我可以通过id以下方式快速查找:
Dictionary<int, Customer>
Run Code Online (Sandbox Code Playgroud)
但是既然我可以使用LINQ来查询List<T>,如下所示,是否有任何理由经历使用Dictionary而不是List的麻烦?字典更快还是LINQ在幕后做一些让它同样快的东西?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Customer> customers = new List<Customer>()
{
new Customer { Id = 234, FirstName = "Jim", LastName = "Smith" },
new Customer { Id = 345, FirstName = "John", LastName = "Thomas" },
new Customer { Id = 654, FirstName = "Rick", LastName = "Ashton" },
new Customer { Id = …Run Code Online (Sandbox Code Playgroud) 在我想要这样做的网站上:(简化)
myHandlers = new Array();
for(var i = 0; i < 7; i++) {
myHandlers.push(new Handler({
handlerName: 'myHandler'+i, // works, e.g. ->myHandler1, 2, 3 etc.
handlerFunc: function(bla) { /*...*/ alert(i); } // doesn't work,all return 7
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将计数器设置为我的处理程序的另一个属性(它将复制当前值)并在我的函数中使用它,但我想,还有一种方法可以实际复制此值,不是吗?
我经常需要在数组中查看数据并使用html标记<pre>来执行此操作.然而,不得不一直打出相同的东西变得乏味和令人沮丧.
我的问题是,你的技术是什么,以避免这种使用PHP编程的烦恼?
我有一个关于在事务中测试查询的问题.我一直在使用MySQL事务很长一段时间,每次我这样做,我都会使用类似的东西:
$doCommit = true;
$error = "";
mysql_query("BEGIN");
/* repeat this part with the different queries in the transaction
this often involves updating of and inserting in multiple tables */
$query = "SELECT, UPDATE, INSERT, etc";
$result = mysql_query($query);
if(!$result){
$error .= mysql_error() . " in " . $query . "<BR>";
$doCommit = false;
}
/* end of repeating part */
if($doCommit){
mysql_query("COMMIT");
} else {
echo $error;
mysql_query("ROLLBACK");
}
Run Code Online (Sandbox Code Playgroud)
现在,我经常想要测试我的事务,所以我mysql_query("COMMIT");改为mysql_query("ROLLBACK");,但我可以想象这不是测试这种东西的好方法.将每个表复制到temp_table并更新并插入到这些表中并在之后删除它们(例如因为表可能非常大)通常是不可行的.当然,当代码投入生产时,相关的错误处理(而不仅仅是打印错误)就会到位.
做这样的事情最好的方法是什么?
我有一个Windows服务以简单的格式将其日志写入文本文件.
现在,我将创建一个小应用程序来读取服务的日志,并将现有日志和添加的日志显示为实时视图.
问题是服务锁定文本文件以添加新行,同时查看器应用程序锁定文件以供读取.
服务代码:
void WriteInLog(string logFilePath, data)
{
File.AppendAllText(logFilePath,
string.Format("{0} : {1}\r\n", DateTime.Now, data));
}
Run Code Online (Sandbox Code Playgroud)
观众代码:
int index = 0;
private void Form1_Load(object sender, EventArgs e)
{
try
{
using (StreamReader sr = new StreamReader(logFilePath))
{
while (sr.Peek() >= 0) // reading the old data
{
AddLineToGrid(sr.ReadLine());
index++;
}
sr.Close();
}
timer1.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
using (StreamReader sr = new StreamReader(logFilePath))
{
// skipping the old data, …Run Code Online (Sandbox Code Playgroud) c# ×2
javascript ×2
perl ×2
arrays ×1
collections ×1
copy ×1
debugging ×1
dictionary ×1
dunit ×1
file ×1
file-io ×1
firefox ×1
for-loop ×1
input ×1
list ×1
mocking ×1
mysql ×1
oop ×1
pascalmock ×1
php ×1
scope ×1
transactions ×1
unit-testing ×1
vb.net ×1