剣道UIを使ってWebサイトを開発したい。の他の資格を使用することができますkendo-ui
。ただし、ASP.NETでファイルのアップロードを使用することはできません。この問題を解決するためのサンプルコードまたはドキュメントはありますか?
6 に答える
これが私のためにそれを機能させたものです:
js:
$(document).ready(function () {
$(".attachmentUpload").kendoUpload({
async: {
saveUrl: "SaveAttachment.aspx",
autoUpload: true
}
});
});
ページ:
<input name="attachmentUpload" id="attachmentUpload" type="file" class="attachmentUpload" />
SaveAttachment.aspx.cs
public partial class SaveAttachment : Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Expires = -1;
try
{
HttpPostedFile postedFile = Request.Files["attachmentUpload"];
//do something with your postedfile
Response.ContentType = "application/json";
Response.Write("{}");
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
}
SaveAttachment.aspx:
<%@ Page Language="C#" CodeBehind="SaveAttachment.aspx.cs" Inherits="Nstar.WebUI.Pages.SaveAttachment" EnableTheming="false" StyleSheetTheme="" Theme="" %>
それはあなたの方法と同様の方法を使用することによって機能しました。私はupload.aspxWebフォームを作成し、それを次のように呼び出しました。
$("#userImage").kendoUpload({
async: {
saveUrl: "upload.aspx"
}
});
私はupload.aspxのaspx.csファイルにこのコードを持っています:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
public partial class upload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ProcessRequest();
}
public void ProcessRequest()
{
Response.Expires = -1;
try
{
var db = new mypicksDBDataContext();
HttpPostedFile postedFile = Request.Files["photos"];
string savepath = Server.MapPath("userFolders/images/");
string filename = postedFile.FileName;
if (!Directory.Exists(savepath))
Directory.CreateDirectory(savepath);
postedFile.SaveAs(savepath + filename);
Response.Write("upload");
}
catch (Exception ex)
{
Response.Write (ex.ToString());
}
}
}
中華鍋は大丈夫です。ファイルをアップロードしますが、新しい問題があります。結果をケンドウイに返すにはどうすればよいですか。アップロードしますが、常にエラーと再試行ボタンが表示されます。Kendo-uiのドキュメントには、アップロードを成功させるために空の文字列を返すと書かれています。Response.Write( "");を試しました しかし、それは機能しませんでした。
@sanalismからの回答は問題ありませんが、アップロードコントロールにエラーと再試行ボタンが表示されます。これを回避するには、json応答を送信する必要があります:
Response.ContentType = "application/json";
Response.Write("{}");
Response.Write("{}");
タグ全体をupload.aspxで送信します。Kendo UIアップロードに送信された結果は、json形式への解析に失敗します。
<% Page...%>
したがって、upload.aspxの横にあるすべてのタグを削除する必要があります
HTTPハンドラーのサンプルを次に示します。
<form id="form1" runat="server">
<input type="file" name="files" id="photos" />
<script type="text/javascript">
$("#photos").kendoUpload({
async: {
saveUrl: "UploadHandler.ashx"
}
});
</script>
</form>
システムを使用する; System.Webを使用します。
パブリッククラスUploadHandler:IHttpHandler {
public void ProcessRequest(HttpContext context)
{
try
{
HttpFileCollection files = context.Request.Files;
HttpPostedFile file = files[0];
int filelength = file.ContentLength;
byte[] input = new byte[filelength ];
file.InputStream.Read(input, 0, filelength );
file.SaveAs(string.Format("C:\\Uploads\\{0}", file.FileName));
}
catch (Exception e)
{
context.Response.Write("{'error':'" + e.Message + "'}");
}
context.Response.Write("");
}
public bool IsReusable
{
get
{
return false;
}
}
}
async.saveUrlプロパティを構成して、POST要求を受け入れるハンドラーを設定します。次に、マルチパートフォームデータパーサー(codeplexのこのパーサーなど)を使用して、剣道のアップロードによって送信されたデータを解析します。また、フォームデータを受け入れるようにサービスを構成します。この投稿を確認してください
どうなるか教えてください!