• 締切済み

ASP.NETでファイルをアップロードし、別のWebサイトに結果を表示するやり方

はじめまして、ASP.NET初心者です。 質問させて頂きたいと思います。 今、本を読みながらASP.NETを勉強中ですが、プログラムが初めてなもので、なかなか理解できません。 もちろんこちらでも調べておりますが、もし何か少しでもわかるキッカケがあれば、と思い、こちらで質問させていただきました。 では、本題に入りたいと思います。 実は仕事で、ホームページ制作を頼まれたのですが、そのトップ画面にある新着ニュースを、ASP.NETを使って、表示させるように命じられました。 仕組みですが、クライアントがメモ帳で、更新したいニュース情報を書き、そのメモ帳を、別のWebサイトの画面に表示させたいと思っています。 一応、ファイルを選択する画面はできたのですが、 ※以下タグ <form id="Form1" method="post" runat="server" enctype="multipart/form-data"> <P>送信するファイルを指定して、[送信]ボタンを押してください。</P> <P><INPUT type="file" name="userfile" size="30">&nbsp;</P> <P> <asp:Button id="Button1" runat="server" Text="送信" /> </P> </form> こちらの参照画面から、送信ボタンを押すと別のWebサイト(サイトのトップ画面)に、メモ帳の結果を表示させるやり方がわかりません。 恐縮ですが、どなたか教えていただけますでしょうか? 使用ツール: OS:WindowsXP メモ帳の結果表示の画面制作ツール:DreamweaverCS3 データベースサーバー:SQL Server2000 開発環境:Web Developer 2005 他に記載すべき項目がありましたら、教えていただきたいと思います。 どうぞ、よろしくお願いいたします

みんなの回答

回答No.2

お世話になります。 > 別のWebサイトとは、テキストファイルを参照する専用の画面 そうしますと ASP.NET だと一般的には 「サイト」ではなく「ページ」という単位になりますね。 ひょっとして ASP.NET ページではなく、単なる Html? Html とかだと話は変わってきますが、 ASP.NET ページで テキストファイルの読み込みをしたいということであれば [ASP.NET Web上のテキストファイルを自動読み込みする方法について] http://okwave.jp/qa2441852.html が参考になるかと。 自動読み込みについては、 Page_Load のイベント内に上記テキストファイルの読み込み に関する記述 (前回更新した時と内容が変わっているか否かのチェックなどなど。。。)をして、 ・一回だけ読み込みしたい場合 投稿画面からテキストファイル表示画面へ遷移する。 (Response.Redirect を使う) Response.Redirect がわからないなら検索して下さい。 例がたくさん載っていますので。 ・定期的に読み込みしたい場合 JavaScript のタイマーと言われるモノを使って、 定期的にテキストファイルをチェック・更新 (=定期的にテキストファイル表示画面の Page_Load を走らせる) したい場合は、定期的にページをリロードする JavaScript をテキストファイル表示画面へ組み込めばよいかと思います。 http://www.scollabo.com/banban/jsindex/sample/sample_248.html 以下は単純な Html の例ですが、1 秒毎にページのリロードが行われます。 (実際はサーバーに対してリロードを行うのでしょうから サーバーに過多にアクセスしないように設計する必要があります。) <html> <head><title>test</title></head> <body onload="setInterval(myTimer,1000)"> <script type="text/javascript"> function myTimer(){ form1.submit(); } </script> <form id="form1" method="post"> test </form> </body> </html>

cyainu
質問者

お礼

再度お忙しい中ご回答頂きまして、誠にありがとう御座います。 単位を間違えてしまい、申し訳御座いません。サイトではなく、ASP.NET ページを制作しております。 今、海外のサイトから、FreeTextBoxというツールをダウンロードしております。(http://freetextbox.com/demos/)こちらはワードのような画面に、テキストを書き込み、送信ボタンを押すと、画面下に表示されるものです。 私がやりたいのは、その下に表示される結果を、同じ画面内に表示させるのではなく、まずサーバーにメモ帳なり、テキスト形式(仮に、kuma.txt)で保存したいと思っております。←こちらが第1段階 その保存されたkuma.txtを、新着ニュース(FreeTextBox画面とは別のASP.NETページ)で、自動でkuma.txtの結果が表示されるようにしたいと思っております。←こちらが第2段階 今第一段階をできるようになりたいと思っております。そのようなサイトを探してみたのですが、 http://rararahp.blog69.fc2.com/blog-entry-53.html こちらのサイトの上のC#をVB式でコードを記述すればいいような気がいたします。VB式でのコードを教えて頂ければ幸いです。 using System.IO; using System.Text; ... using (StreamWriter sw = new StreamWriter(@"C:\tmp\test.txt", false, Encoding.GetEncoding("shift_jis"))) {   try   {     sw.WriteLine("abcde");     sw.WriteLine("fghij");   }   finally   {     if (sw != null)     {       sw.Close();     }   } } 度々、お世話になり恐縮では御座いますが、どうぞよろしくお願い致します。

cyainu
質問者

補足

この回答へのお礼欄にある、 >こちらはワードのような画面に、テキストを書き込み、送信ボタンを押すと、画面下に表示されるものです。 ですが、正式には【送信ボタン】ではなく、こちらの画面では【SAVE】ボタンでした。今現在制作している画面と、ごちゃまぜになってしまいました。大変申し訳御座いません。

回答No.1

お世話になります。 「別のWebサイト」なるものが何者であるかが解らないと 正確な回答が得られにくいと思われます。 「別のWebサイト」が そのテキストファイル?を参照できるような仕組みが必要かもしれません。 データベースを使っているならデータベースで相互にその情報を共有できるようにするなり、 Web サービスで参照させるなり 色々方法はあるかと思います。

cyainu
質問者

補足

ご回答ありがとう御座いました。 また、わかりにくい表現で申し訳ありません。 別のWebサイトとは、テキストファイルを参照する専用の画面でして、トップページと同じフォルダ内に作る予定です。 この表現で大丈夫でしょうか?

関連するQ&A

  • ASP.NET WEBアプリケーションで作成されたページより他の既存ペ

    ASP.NET WEBアプリケーションで作成されたページより他の既存ページへデータを投げたいと考えているのですがセキュリティ上難しいのでは?と考えています。しかし、なんとか代替案がないかと思っておりどなたかヒントをいただけないでしょうか? <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" Height="72px" TextMode="MultiLine" Width="651px"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Button" />&nbsp;&nbsp; <asp:Button ID="Button2" runat="server" Text="Button" /> <br /> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> 例えばこんな簡単なaspxのページで構成されているとします。 テキストボックスに入れた値を既存のWEBページ(Yahooへのログインだとか)へ入れ込みたいのですが・・・クライアントにスクリプトで作ってとかなら余裕で出来ると思うのですがサーバサイドで仕込むことは難しいでしょうか?回避策とかもあるとなおうれしいのですが・・・よろしくお願いします。

  • ASP.NET ブラウザでボタンが表示されない

    Visual Studio .netを使い始めた初心者です。 Win2000(デスクトップ)とWinXP(ノート)にそれぞれ同じように VisualStudio .netをインストールし、IISを有効にし、 「ASP.NET Webアプリケーション」にて、 手持ちの参考書の最初に載っておりました、 「テキストボックスに文字を入力し、 ボタンを押すと、Labelコントロールのところに 入力された文字が表示される」というプログラムを入れてみましたところ、 ブラウザにてローカル(http://localhost/sample1/webform1.aspx)を見ますと、 Win2000マシンの方は正常に表示され、正常にプログラムが動いているのですが、 WinXPマシンの方は、テキストボックスとボタンが表示されておりません。 そこで、ブラウザに表示されたそれぞれのソースを確認したところ、 例えばFormの部分が 成功している方 <form name="Form1" method="post" action="webform1.aspx" id="Form1"> 失敗している方 <FORM id=Form1 method=post runat="server"> と異なり、 ボタンの部分も 成功している方 <input type="submit" name="Button1" value="Button" id="Button1" style="Z-INDEX: 103; LEFT: 366px; POSITION: absolute; TOP: 45px" /> 失敗している方 <ASP:BUTTON id=Button1 style="Z-INDEX: 103; LEFT: 366px; POSITION: absolute; TOP: 45px" runat="server"> と異なっております。 これはどういう現象なのでしょう? VisualStudio.netの設定か、IISの設定か、 あるいはVisualStudio.netをインストールするときに、 WinXPマシンに必要な物が入ってなかったのか、 何か考えられます原因がありましたら、ぜひお教え下さい。

  • 「ASP.NET3.5+AJAX」とWebサイトで指定する文字コードに

    「ASP.NET3.5+AJAX」とWebサイトで指定する文字コードに関して質問があります。 現在、VisualStudio2008(Professional)を使って、新規にWebサイトを開発をしています。 (使用している.NET Frameworkは3.5です) ASP.NET3.5では「ASP.NET AJAX」を標準でサポートしているというので、 ためしにVS2008でWebプロジェクト作成時にデフォルトで用意されていたDefault.aspxに 下記のようにFormタグ直下にScriptManagerコントロールを埋め込んでみました。 <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> ・・・ ここでVS2008のデバッガでDefault.aspxのページを表示したところ、 問題なく背景色が白いページが表示されました。(ここまでは問題ありません) 次にWeb.configのglobalizationで、下記のように文字コードを"Shift-jis"にしまいた。 <globalization requestEncoding="Shift_JIS" responseEncoding="Shift_JIS" fileEncoding="Shift_JIS"/> ここで先ほどと同様に、VS2008のデバッガDefault.aspxのページを表示したところ、 次のような内容のエラーダイアログが、2回立て続けに表示されました。 <エラー1つ目> 行:39 エラー:ASP.NET Ajaxクライアント側フレームワークを読み込ませんでした。 <エラー2つ目> 行:49 エラー:'Sys'は宣言されていません。 原因は、globalizationで文字コードをを変えた直後に発生したエラーなので、 ASP.NET AJAXを利用するには、UTF-8じゃないと問題ありということはわかったのですが・・・。 この問題を解決するには、globalizationに指定する文字コードを"UTF-8"にするしか 方法がないのでしょうか?(Webサイトの仕様上、なるべく"Shift-jis"を指定したく思っています) ご教授の程、宜しくお願い致します。

  • ASP.NET web アプリケーションでの入力検証に関して質問です

    ASP.NET web アプリケーションでの入力検証に関して質問です 当方.NET、オブジェクト指向言語初心者です 検討違いなことを質問しているかもしれませんが 回答いただけたら幸いです 以下を使用しています visual studio 2008 .NET Framework 3.5 C# 新規プロジェクト作成時に ASP.NET web アプリケーションを選択し、 (ASP.NET MVC等ではなく) TextBox Button を配置し Buttonを押下した時に TextBoxに何も入力されていなかった場合 エラーメッセージを表示するような入力検証を System.ComponentModel.DataAnnotations を用いて行いたいと考えています (RequiredFieldValidatorではなく) Q1 新規プロジェクト作成時にASP.NET web アプリケーションを選択した場合 System.ComponentModel.DataAnnotations を用いて入力検証はおこなえるのでしょうか? (webで検索したところASP.NET MVCやSilverlightのサンプルはあったのですが・・・) Q2 Q1がYESの場合 具体的にはどう実装すればよいのでしょうか? 以下にソースを記載します ■Defaoult.Aspx <%@ Page Title="ホーム ページ" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </asp:Content> ■Default.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.ComponentModel.DataAnnotations;  //←※ namespace WebApplication2 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { } } } ※ 参照の追加で System.ComponentModel.DataAnnotations を追加して usingで定義するところまでは検討がつきました 以上、宜しくお願い致します

  • ASP.NETでWebユーザーコントロールを作成していますが、あるユー

    ASP.NETでWebユーザーコントロールを作成していますが、あるユーザーコントロールを拡張して別のユーザーコントロールを作成したいと思っています。 Webカスタムコントロールであれば、クラスの継承の概念を使って派生クラスを作成し、追加したいコントロールやフィールドを派生クラスで追加するのですが、ユーザーコントロールでこれと同じ事はできないものでしょうか? Visual Studio 2005環境ですが、Webカスタムコントロールはデザイナを使った開発ができず、わざわざDLLにコンパイルした後aspxページに埋め込んでやらないと見た目を確認できません。その点、ユーザーコントロールは通常のWindowsフォームアプリケーションのように、デザイナ上でコントロールをD&Dし、プロパティエディタでプロパティの設定もできます。 下記に試してみたコードを示します。 [WebUserControl1.ascx] <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %> <%@ Register Assembly="WebBaseFormLib" Namespace="WebBaseFormLib" TagPrefix="cc1" %> <asp:Button ID="Button1" runat="server" Text="Button1" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> [WebUserControl1.ascx.cs] namespace WebApplication1 { public partial class WebUserControl1 : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } } } [WebUserControl2.ascx] <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl2.ascx.cs" Inherits="WebApplication1.WebUserControl2" %> <%@ Reference Control="~/WebUserControl1.ascx" %> <asp:Button ID="Button2" runat="server" Text="Button2" /> [WebUserControl2.ascx.cs] namespace WebApplication1 { public partial class WebUserControl2 : WebUserControl1 //WebUserControl1を継承 { protected void Page_Load(object sender, EventArgs e) { } } } こうした場合に、WebUserControl2をaspxページで使用してもButton2しか表示されません。 期待する動きとしては、WebUserControl1に配置したButton1とtextbox1が透過的に表示して欲しかったのですが。

  • ASP.net

    asp:Textboxなどのサーバコントロールについて質問です。 質問(1)サーバコントロールには、runat=Serverと記載しますが、これはサーバにリクエストが走っているということなのでしょうか? 質問(2)それらのコントロールに対して、CSS3のプロパティは指定可能なのでしょうか? 質問(3)JQUERYの、DOCUMENT.READYや、#Button.clickは、使用可能でしょうか?また、JQUERY Mobileは使用可能でしょうか? ◆補則 (1)VBの部品を、ブラウザ上で動かすようなケースであれば、クライアントにダウンロードをさせずに動かすために、サーバで動くということもあるのでしょうが、asp:Textboxなどであれば、内部的にはHTMLのタグなのでしょうか? だとしたらリクエストはしないのですよね? (2)動的に、page.UI.textboxなどを作成すると、HTMLタグが持っている要素をプロパティとして持っていますが、ユーザコントロールは、もしHTMLとして作成されているtextboxならCSSプロパティを指定できそうですが、VBの部品なら操作できるのはVBのコントロールのプロパティですよね? (3)AJAXの考え方は、DOMだけ書き換えようとするのにたいし、ASPでは、FormをSubmitしてリクエストしますよね。 どうやって共存しているのでしょうか?

  • ASP.NETで質問です。

    ASP.NETで質問です。 <asp:Repeater ID="rp" runat="server" OnItemDataBound="rp_OnItemDataBound"> <ItemTemplate> <asp:Literal ID="ltr_num" runat="server" /> <asp:Literal ID="ltr_name" runat="server" /> <br /> </ItemTemplate> </asp:Repeater> rp_OnItemDataBoundメソッドでltr_num,ltr_nameに値を入れたいのですが、 ltr_num.Text,ltr_name.Textにアクセスできません。 どなたか教えてください。 お願い致します。

  • yahoo API ASP.NETで表示させるには

    お世話になります 環境 Windowsxp pro asp.net vb ACCESS(テーブル) 超初心者 Yahoo APIですが下記を参考中に作成しています http://www.atmarkit.co.jp/fdotnet/dotnettips/477 aspx-------------------------------------------------------------- <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default6.aspx.vb" Inherits="loop_Default6" %> <!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>webAPI</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="txtKeyword" runat="server"></asp:TextBox> <asp:Button ID="btnSearch" runat="server" OnClick="btnSearch_Click" Text="検索" /> <br /> <asp:BulletedList ID="list" runat="server" DataSourceID="Xml" DataTextField="Title" DataValueField="Url" DisplayMode="HyperLink"> </asp:BulletedList> <asp:XmlDataSource ID="Xml" runat="server" DataFile="http://search.yahooapis.jp/WebSearchService/V2/webSearch?appid=自分のID&query=apiとは?&results=20" TransformFile="~/App_Data/YahooSearch.xsl"></asp:XmlDataSource> <br /> </div> </form> </body> </html> aspx.vb Partial Class loop_Default6 Inherits System.Web.UI.Page Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click Xml.DataFile = _ "http://search.yahooapis.jp/WebSearchService/V2/webSearch?appid=自分のID&query=" _ & Server.UrlEncode(txtKeyword.Text) & "&results=50" End Sub End Class xsl--------------------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:yahoo="urn:yahoo:jp:srch" version="1.0"> <xsl:template match="/yahoo:ResultSet"> <ResultSet> <xsl:for-each select="yahoo:Result"> <Result> <xsl:attribute name="Title"> <xsl:value-of select="yahoo:Title" /> </xsl:attribute> <xsl:attribute name="Url"> <xsl:value-of select="yahoo:Url" /> </xsl:attribute> </Result> </xsl:for-each> </ResultSet> </xsl:template> </xsl:stylesheet> -------------------------------------------- 現在は表示ぐらいまでならできました これをyahooオークションで転用したいのですが ASP.NETでググってもあまりHITしません 分かる方初心者ですがご教授願います

  • Visual Studio.Net 2003の”ASP.NET Web

    Visual Studio.Net 2003の”ASP.NET Web アプリケーション”が起動出来ない?   上記の”ASP.NET Web アプリケーション”を起動すると、以下のようなメッセージがでてきて 起動できません。 <エラー内容> 【ASP.NET バージョンの不一致】 Web サーバーで ASP.NET Version 1.0 が実行されいています。 作成したり開こうとしている Web アプリケーションは、ASP.NET 1.0 に準拠するように構成できます。 ただし、ASP.NET 1.1 の新機能をこのアプリケーションで使用することはできなくなります。 ----------------------------------------------------------------------------- 実行する操作 ●アプリケーションを開かないで、続行する前に、サーバー上の ASP.NET を最新バージョンにアップグレードする (推奨) ○アプリケーションを ASP.NET Version 1.0 に準拠させる そこで、●アプリケーションを開かないで、続行する前に、サーバー上の ASP.NET を最新バージョンにアップグレードする (推奨) を実行すると何も起きず、通常の画面に戻ってしまいます。 ちなみに、環境は以下のようになっています。 OS:Windows7 サーバー:Windows Server 2003 ツールソフト:Visual Studio.NET 2003 です。 どうすれば、起動できるのか、詳しい方のご回答をお待ちしております。

  • ASP.NETでTimerコントロールを使用したい

    ASP.NETWebアプリケーションについての質問です。 ajaxのTimerコントロールでイベントを発生させ、画面の再描画をしようとしています。 コードは以下のような感じで、OnPreRenderイベント内で描画処理を行います。 Partial Public Class _Default Inherits System.Web.UI.Page Private str As String = "" Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load str = CStr(Date.Now) End Sub Protected Overrides Sub OnPreRender( _ ByVal e As System.EventArgs _ ) Label1.Text = str End Sub End Class Timerコントロールを配置して実行したところ、 Script controls may not be registered before PreRender. というエラーが出てしまいます。 調べてみたのですが原因がわかりません。 何かプロパティの設定などが必要なのでしょうか? aspx のコードは以下のとおりです。 <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebApplication5._Default" %> <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %> <!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>無題のページ</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" ></asp:ScriptManager> <asp:Timer ID="Timer1"runat="server"></asp:Timer> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Labe> l </form> </body> </html> 回答よろしくお願いいたします。

    • ベストアンサー
    • AJAX

専門家に質問してみよう