1

ユーザーが参照できるシンプルな ASP.NET ページがあり、マシンからファイルを選択してサーバーにアップロードします。私のリモート ユーザーは、最後に (CURL を使用して) ファイルのアップロードを自動化したいと考えています。

ボタンをクリックするユーザーがいないので、これを処理するために何かをする必要がありますが、何ですか?

ボタンをクリックせずに Web ページでファイルのアップロードを処理するには、どのような変更を加える必要がありますか?

コードページ...

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;

namespace FileUpload
{
    public partial class _Default : System.Web.UI.Page
    {
        string UploadTo_Path = ConfigurationManager.AppSettings.Get("UploadTo_Path");
        protected System.Web.UI.HtmlControls.HtmlInputFile File1;
        protected void Page_Load(object sender, EventArgs e){ }
        protected void Button1_Click(object sender, EventArgs e)
        {
            UploadFile();
        }       
        private void UploadFile()
        { 
            if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
            {
                string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
                UploadTo_Path += "\\" + fn;
                File1.PostedFile.SaveAs(UploadTo_Path);
                Response.Write("The file has been uploaded.");
            }
            else
            {
                Response.Write("Please select a file to upload.");
            }
        }
    }
}

フロントエンド...

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FileUpload._Default" Trace="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>File Upload</title>
</head>
<body>
    <form id="form1" runat="server" enctype="multipart/form-data">
        <input type="file" id="File1" name="File1" runat="server" />&nbsp;
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    </form>
</body>
</html>
4

3 に答える 3

2

私はこれを別の方法で行います。

ページが POST を使用してアクセスされたかどうかを確認してから、UploadFile() を実行します。クリック ハンドラーではボタンを使用しません。

クライアント側では、フォームはページに対して通常のフォーム送信 (POST) を行うだけです。

これにより、CURL もページに直接アクセスできるようになり、JavaScript を巧妙に操作する必要はありません (これは無効にすることができますが、CURL はそうしません)。

于 2012-08-29T12:51:19.467 に答える
0

私の場合は、認証付きのWebサービスをセットアップします。アップロードされているファイルをHttpHandlerで検証しなくても、誰でもサーバーにファイルを詰め込めるようにする機能を開いていると思います。

于 2012-08-29T13:12:37.120 に答える
0

たとえば、ページの読み込み時や選択した別のイベント時に、javascript を使用して起動できます。

"document.getElementById(' " + FileUpload1.ClientID+ "').click()"
于 2012-08-29T12:47:59.143 に答える