我有文件存储在S3上,GUID作为键名.
我正在使用预签名的URL按照S3 REST API下载
我将原始文件名存储在我自己的数据库中.当用户单击从我的Web应用程序下载文件时,我想返回其原始文件名,但目前他们得到的只是一个GUID.我怎样才能做到这一点?
我的网络应用程序在salesforce中,所以我没有太多控制权来做响应.所有人都将文件下载到网络服务器,然后由于州长限制重命名.
是否有一些HTML重定向,元刷新,我可以使用Javascript?有没有办法改变S3的下载文件名(我唯一能想到的是将对象复制到新名称,下载,然后删除它).
我想避免为每个用户创建一个存储桶,因为我们会有很多用户,但仍然不能保证每个存储桶中的每个文件都有一个唯一的名称
还有其他方法吗?
我最近在firebug上用pagespeed插件分析了我的网站.它建议我设置CSS,JS和图像文件的到期时间.
我想知道我该怎么做?
我希望能够DataContract从XSD文件生成一个,最好使用xsd.exe工具.什么是自动生成[DataContract]和[DataMember]我的每个项目最简单的方法?
还是有更好的方法?我试图避免每次更改和重新生成XSD文件时重新创建数据协定.
我有一个名为"Admin"的AREA
它使用与我网站其余部分相同的布局页面.在我的布局页面中
@Html.Action("MyMethod", "MyController", null)
Run Code Online (Sandbox Code Playgroud)
MyController 不在 Admin区域,但是当我转到AREA旁边的任何页面时,在root/controllers文件夹中我得到以下execption
"路径'/ admin/home'的控制器未找到或未实现IController"
我正在尝试手动验证,所以我可以通过AJAX发布我的表单.
我也在动态加载我的表单 $("#formHolder").load(url);
当我将页面加载到DIV时,它总是验证为true,即使我的输入框为空.
即打电话 if($("#MyForm").valid()) //is always true
但是,如果我直接转到页面URL,它可以正常工作.
因此,如何在加载窗体后正确初始化窗体,.load(url);因为它在首次打开时不存在于页面上
我的Javascript是
$('.myLink').click(function () {
var url = '/newsletter/info/'; // this loads my HTML form from another page/view at runtime
$("#formHolder").load(url, function () {
$("#MyForm").validate(); // I thought this line would initialise it once it loads
}).dialog({
modal: true,
width:800,
height: 600
});
return false;
});
Run Code Online (Sandbox Code Playgroud) 在S3 REST API中,我通过使用PUT(复制)命令将密钥添加到现有对象,并将密钥复制到同一位置 'x-amz-metadata-directive' = 'REPLACE'
我想要做的是通过设置更改下载文件名:
Content-Disposition: attachment; filename=foo.bar;
Run Code Online (Sandbox Code Playgroud)
这会正确设置元数据,但是当我下载文件时,它仍然使用密钥名称而不是'foo.bar'
我使用软件工具S3浏览器来查看元数据,它看起来是正确的(除了'Content-Disposition'全是小写,因为那是S3请我签名)
然后使用S3浏览器我刚按下,然后保存而不更改任何东西,现在它的工作原理???
我错过了如何'Content-Disposition: attachment; filename=foo.bar;'从我的网络应用程序设置元数据不起作用,但从S3浏览器工作?
我希望在我的网站上为所有jQuery验证用户提供站点范围的默认设置,我希望每个表单都使用以下设置,但随后在每个表单的基础上更改规则和消息.这可能吗?
$('#myForm').validate({
errorClass: 'field-validation-error',
errorElement: 'span',
errorPlacement: function(error, element) {
element.next('span').remove();
error.insertAfter( element )
.removeClass('field-validation-error')
.addClass('ui-state-error');
},
success: function(label) {
label.remove();
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个只包含SubReport的Section.
我有一个隐藏子报告的"抑制(没有向下钻取)"的公式.这有效.然而,如果它是可见的,它会留下一个很大的空白空间,如子报告那样.
我勾选了"抑制空白部分",并且在周围的部分没有任何影响地点击"保持在一起".如何更改它,以便我的隐藏/抑制部分不显示任何空白空格?
我正在使用Crystal Reports 11.
更新它可能不是导致问题的空白部分,可能是我想要显示的第二个子报告是2大适合第一页,所以只是从第二页开始.我已经取消了"New Page Before"和"Keep Togeather"
我有一笔雇主支付的总金额,这笔金额需要在员工之间分配.
例如
a $100
b $200
c -$200
d -$200
e $500
Run Code Online (Sandbox Code Playgroud)
应付总金额是所有项目的总和,在这种情况下是400美元
问题是我必须要求第三方系统逐一分配这些金额.但在分配期间,我不能让余额低于$ 0或高于总金额($ 400).
因此,如果我按上述顺序插入a,b,c将起作用,因此当前分配的总和= 100 + 200 - 200 = $ 100.但是,当我尝试分配d.系统将尝试添加 - $ 200,这将使当前分配的金额 - $ 100,<$ 0,这是不允许的,因此它将被系统拒绝.
如果我对列表进行排序,那么负面项目是最后的.即
a $100
b $200
e $500
c -$200
d -$200
Run Code Online (Sandbox Code Playgroud)
a将工作,b将工作,但当它试图插入e时,将有不足的资金错误,因为我们已超过400美元的最大值.我已经认识到没有灵丹妙药,并且总会出现会破坏的情景.但是我想提出一个大部分时间都可以工作的解决方案.
正常的数据样本将包含5到100个项目.只有2-15%的含量为负数.
有没有一种聪明的方法可以对列表进行排序?或者只是多次尝试分配会更好.例如,将正面和负面分成两个列表.插入正数直到一个错误,然后插入负数直到它出错,然后在列表之间来回切换,直到全部分配或直到它们都出错.
在Scotts博客文章中,他描述了如何将一组对象发布到控制器.
我的问题 如何最好地为此生成一个View,允许用户动态添加更多数组项?
如果我写
foreach(MyModel item in Model)
{
<p>@Html.TextBoxFor(m => item.Name)</p>
}
Run Code Online (Sandbox Code Playgroud)
并让控制器每次生成<input type="text" name="item.Name" /> 缺少1个数组索引时向数组添加一个新项 .
如果我手动编码<input>然后它工作但我失去了所有的客户端验证属性,如data-val-required="Name is required"
我想要做的是让用户动态地向阵列添加新项目并仍然保持不引人注意的验证?这是最好的做法是什么?
我想我自己用jQuery编写了它,但如果是这样我可以保持验证吗?
更新 看起来像Tassadaque的答案是一个很好的.NET解决方案,但看起来像很多服务器端代码做一些应该很容易的事情.Muhammad Adeel Zahi的答案还可以,但仍然错过了客户端验证.
我想我最终会手动编写自己的客户端HTML并使用jQuery live和validation插件.因此,我可以自己进行所有验证,并在不调用服务器的情况下添加和删除所有客户端的新项目.
amazon-s3 ×2
asp.net-mvc ×2
jquery ×2
.net ×1
algorithm ×1
apache ×1
c# ×1
caching ×1
datacontract ×1
javascript ×1
metadata ×1
razor ×1
rest ×1
validation ×1
wcf ×1
webpage ×1
xsd ×1