Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在服务器上保存多个文件并在一个单元格中收集它们的路径,这可能吗?_C#_Jquery_Asp.net_File Upload - Fatal编程技术网

C#在服务器上保存多个文件并在一个单元格中收集它们的路径,这可能吗?

C#在服务器上保存多个文件并在一个单元格中收集它们的路径,这可能吗?,c#,jquery,asp.net,file-upload,C#,Jquery,Asp.net,File Upload,下面是一个脚本,用于上载服务器文件夹上的多个文件并将其路径存储在数据库中,但图像的路径将存储在多行中。 例如:我上传了3张图片, image1.jpg,image2.jpg,image3.jpg。这些图像应该存储在一行中 现在的问题是,所有3个图像的路径都存储在3行下面。路径 上传第1行的/image1.jpg 上传/image1.jpgimage2.jpg行2 上传第3行中的/image1.jpgimage2.jpgimage3.jpg 我希望图像应该以这种方式存储: 上载/image1

下面是一个脚本,用于上载服务器文件夹上的多个文件并将其路径存储在数据库中,但图像的路径将存储在多行中。
例如:我上传了3张图片,
image1.jpg,image2.jpg,image3.jpg。这些图像应该存储在一行中
现在的问题是,所有3个图像的路径都存储在3行下面。路径 上传第1行的/image1.jpg
上传/image1.jpgimage2.jpg行2
上传第3行中的/image1.jpgimage2.jpgimage3.jpg
我希望图像应该以这种方式存储: 上载/image1.jpguploads/image1.jpgimage2.jpguploads/image1.jpgimage2.jpgimage3.jpg 1-使用JQuery多文件上传多个文件 此脚本: 这是 HTML表单
上传 上传文件

2-我修改了FileUpload.ashx以保存数据集中的所有文件路径,并将其转换为xml文件,最后将其保存在一个单元格中 FileUpload.ashx.cs

public void ProcessRequest(HttpContext上下文)
{
if(context.Request.Files.Count==0)
{
//日志请求(“未发送文件”);
context.Response.ContentType=“text/plain”;
Write(“未收到任何文件”);
}
其他的
{
//创建表以将所有文件路径保存在文件中
DataTable DT=新的DataTable(“FileTable”);
DataColumn dc=新的DataColumn(“文件路径”,类型(字符串));
DT.Columns.Add(dc);
HttpFileCollection hfc=HttpContext.Current.Request.Files;
对于(int i=0;i0)
{
DataRow dr=DT.NewRow();
System.IO.Path.GetFileName(hpf.FileName);
dr[“FilePath”]=“upload”+hpf.FileName;
DT.Rows.Add(dr);
SaveAs(HttpContext.Current.Server.MapPath(“/Upload”)+“\\”+hpf.FileName);
字符串文件名=hpf.FileName;
字符串FileType=hpf.ContentType;
int FileSize=hpf.ContentLength;
context.Response.ContentType=“text/plain”;
context.Response.Write(“{\”name\“:\”+FileName+“\”,\”type\“:\”+FileType+“\”,\”size\“:\”+FileSize+“\”);
}
}
数据集ds=新数据集();
ds.Tables.Add(DT);
//连接到数据库以传递过程ds.GetXml()
SqlConnection conn=新的SqlConnection(ConfigurationManager.ConnectionString[“sundbc”].ToString());
var cmd=新的SqlCommand(“sp_SaveFile”,conn);
cmd.CommandType=CommandType.storedProcess;
cmd.Connection=conn;
conn.Open();
cmd.Parameters.AddWithValue(“@xmlFile”,ds.GetXml());
cmd.ExecuteNonQuery();
//可以通过此处的DataReader对象访问数据。
康涅狄格州关闭();
}
}

因为您为每张图片添加了一个新行……我建议不要将值列表存储在一行中,因为这将在以后带来越来越多的困难。例如,删除单个图像路径或对图像进行排序将需要更多的编码。您的权利是因为我希望将其转换为XML文件并通过ds.GetXml()存储,然后将它传递给sql,这样我就可以检索它。你给我的建议是,我只想在一个单元格中保存多个文件路径,以便像Facebook image systemvb@Filburt那样轻松检索它,因为你为每张图片添加了一个新行……我建议不要将值列表存储在一行中,因为这样以后会带来越来越多的困难。例如,删除单个图像路径或对图像进行排序将需要更多的编码。您的权利是因为我希望将其转换为XML文件并通过ds.GetXml()存储,然后将其传递给sql以便检索。您向我建议的是将多个文件路径保存在一个单元格中,以便像Facebook image systemvb@Filburt那样轻松检索
 public void ProcessRequest(HttpContext context)
        {

            if (context.Request.Files.Count == 0)
            {

                //LogRequest("No files sent.");

                context.Response.ContentType = "text/plain";
                context.Response.Write("No files received.");

            }
            else
            {
                // create table to save all file paths in on file  
                DataTable DT = new DataTable("FileTable");
                DataColumn dc = new DataColumn("FilePath", typeof(string));
                DT.Columns.Add(dc);

                HttpFileCollection hfc = HttpContext.Current.Request.Files;

                for (int i = 0; i < hfc.Count; i++)
                {
                    HttpPostedFile hpf = hfc[i];
                    if (hpf.ContentLength > 0)
                    {
                        DataRow dr = DT.NewRow();
                        System.IO.Path.GetFileName(hpf.FileName);
                        dr["FilePath"] = "upload" + hpf.FileName;
                        DT.Rows.Add(dr);
                        hpf.SaveAs(HttpContext.Current.Server.MapPath("/Upload") + "\\" + hpf.FileName);
                        string FileName = hpf.FileName;
                        string FileType = hpf.ContentType;
                        int FileSize = hpf.ContentLength;

                context.Response.ContentType = "text/plain";
                context.Response.Write("{\"name\":\"" + FileName + "\",\"type\":\"" + FileType + "\",\"size\":\"" + FileSize + "\"}");
                    }
                }
                DataSet ds = new DataSet();
                ds.Tables.Add(DT);
                // connect to data base to pass Procedure  ds.GetXml() 
                SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sundbc"].ToString());

                var cmd = new SqlCommand("sp_SaveFile", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = conn;
                conn.Open();
                cmd.Parameters.AddWithValue("@xmlFile", ds.GetXml());
                 cmd.ExecuteNonQuery();

                // Data is accessible through the DataReader object here.

                conn.Close();


            }

        }