我有以下型号:
int upperCount = 0;
int lowerCount = 0;
Scanner sc = new Scanner(System.in);
String w = sc.nextLine();
for(int i = 0; i < w.length(); i++){
if(Character.isUpperCase(w.charAt(i))){
upperCount++;
}else{
lowerCount++;
}
}
System.out.println("Upper Counts are "+upperCount+" lower counts are "+lowerCount);
查看:
public string Content { get; set; }
public HttpPostedFileBase LogoImageFile { get; set; }
当用户使用文件输入元素中的“选择文件”按钮从本地驱动器中选择照片时,图像将通过javascript显示在屏幕上(如果表单有效并且提交,图像将保存到服务器):
@Html.EditorFor(model => model.Content, new { htmlAttributes = new { @class = "form-control" } })
<div class="uploaded-img-wrapper hidden">
<img class="img-thumbnail-md" title="logo image" alt="logo image" />
</div>
@Html.TextBoxFor(model => model.LogoImageFile, new { type = "file", @class = "image-upload" })
我对“内容”文本框进行了服务器端验证。如果服务器端验证失败并且if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
var $wrapper = $(input).prev();
$wrapper.removeClass('hidden');
$wrapper.find('img').attr('src', e.target.result).removeAttr('title');
$(input).addClass('hidden');
}
reader.readAsDataURL(input.files[0]);
}
被调用,则文件输入中的图像将消失。任何人都知道如何在返回View时将文件保留在页面上?
答案 0 :(得分:1)
我有两个问题的解决方案:
远程验证:
根据以下句子“我对内容文本框进行了服务器端验证”,在我看来,您可以使用远程验证来验证表单,而不是将表单发送到服务器。这个link可以帮助您使用远程验证(我建议这样做)。
临时商店
在此解决方案中,您必须使用启用了ajax的文件上载组件(例如this)将文件或文件发送到服务器。然后,您必须准备一个操作以接收文件并将其保存在临时存储器(如缓存或文件系统)中,并生成文件引用以恢复保存的文件,最后将文件引用返回给客户端。文件引用形式作为隐藏输入,从而每次发送表单时,发送文件引用而不是文件内容。当然应注意两点:
1)使用用户请求准备取消所选文件的操作
2)按文件参考
准备api以恢复临时文件3)管理临时文件以确保它们不会填满您的存储空间(如果使用asp.net缓存作为临时存储空间,IIS本身会处理它)。
public ActionResult UploadTemporary(HttpPostedFileBase file)
{
Guid reference = Guid.NewGuid();
string extension = Path.GetExtension(file.FileName);
string fullName= reference.ToString()+extension;
var path = Path.Combine(Server.MapPath("~/Content/TempFiles/"), fullName);
var data = new byte[file.ContentLength];
file.InputStream.Read(data, 0, file.ContentLength);
using (var sw = new FileStream(path, FileMode.Create))
{
sw.Write(data, 0, data.Length);
}
return Content(reference);
}
如果您在项目中遇到一些此需求案例,第一个解决方案既快捷又容易,但如果您遇到大量此案例,我建议您使用第二个解决方案。第二个解决方案是时间 - 消费但对批量处理文件的应用程序非常有用。