将上传的文件从asp.net mvc 4.0应用程序写入linux服务器

时间:2013-06-27 14:12:46

标签: c# asp.net asp.net-mvc-4

我想将上传的文件上传到我的mvc 4.0应用程序运行的地方以及由基于linux的服务器驱动的另一台服务器。我想将文件上传到tomcat服务器下的目录(例如:KGS / assets /)。我可以通过以下代码将文件上传到本地服务器

public ActionResult Upload(string qqfile, int id)
        {
            //resim ekliyor
            const string path = @"C:\Temp\";
            const string kgsPath =@"\\";
            try
            {
                var stream = Request.InputStream;
                string file;
                if (String.IsNullOrEmpty(Request["qqfile"]))
                {
                    // IE
                    HttpPostedFileBase postedFile = Request.Files[0];
                    stream = postedFile.InputStream;
                    file = Path.Combine(path, System.IO.Path.GetFileName(Request.Files[0].FileName));
                }
                else
                {
                    //Webkit, Mozilla
                    file = Path.Combine(path, qqfile);
                }

                var buffer = new byte[stream.Length];
                stream.Read(buffer, 0, buffer.Length);
                System.IO.File.WriteAllBytes(file, buffer);

            }
            catch (Exception ex)
            {
                return Json(new { success = false, message = ex.Message }, "application/json");
            }
            return Json(new { success = true }, "text/html");
        }

是否有任何方法或方法可以实现这一点,或者这是不可能完成的?

1 个答案:

答案 0 :(得分:0)

您必须公开一些将文件存储在ASP.NET应用程序可以使用的Linux服务器上的方法。这可以是Samba或NFS共享,FTP帐户,Web服务等。您选择的存储机制将决定如何在那里存储文件。

另一种选择是使用rsync之类的东西来保持两个地方的文件同步。您的.NET应用程序不会意识到这一点,因此无需编码。