كيفية فتح ملف نصي بعيد باستخدام server.mappath في ASP.NET؟

StackOverflow https://stackoverflow.com/questions/2487320

سؤال

هذا ما لدي الآن لملف موجود على نفس الخادم ويعمل.

Dim FILENAME as String = Server.MapPath("Output.txt")

Dim objStreamWriter as StreamWriter
objStreamWriter = File.CreateText(FILENAME)

dr = myCommand.ExecuteReader()
While dr.Read()

objStreamWriter.WriteLine("{0}|{1}|{2:yyyy-MM-dd}|{3:yyyy-MM-dd}", dr(0),  dr(1), dr(2), dr(3))

End While
objStreamWriter.Close()

كنت أخطط لتفتيت الملف إلى خادم آخر بمجرد انتهاءها ، لكن هل هناك طريقة للقيام بذلك على خادم بعيد؟ أي إنشاء ملف نصي على خادم بعيد واكتب إليه؟ لم يجد أي حالات من هذا الاستخدام. كيفية استخدام serverxmlhttp لاستبدال server.mappath في هذه الحالة؟

شكرا جزيلا على وقتك.

هل كانت مفيدة؟

المحلول

استخدام MapPath و StreamWriter بهذه الطريقة لن تعمل. هذا مخصص لسيناريو الملف المحلي. يمكنك مباشرة ملفات FTP من .NET باستخدام ftpwebrequest.

إليك مثال على استخدام FTPWebRequest لكتابة ملف (مثال من هنا):

        FtpWebRequest request =
            (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/output.txt");
        request.Method = WebRequestMethods.Ftp.UploadFile;

        // This example assumes the FTP site uses anonymous logon.
        request.Credentials = 
            new NetworkCredential ("anonymous","janeDoe@contoso.com");

        Stream requestStream = request.GetRequestStream();
        requestStream.Write(stuff); // write your stuff here
        requestStream.Close();

        FtpWebResponse response = (FtpWebResponse)request.GetResponse();

        Console.WriteLine("Upload File Complete, status {0}",
            response.StatusDescription);

        response.Close();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top