是否可以使用文件上传控件一次只上传文件的图像和视频类型?

时间:2017-10-17 16:28:18

标签: c# asp.net sql-server

    <div class="col-sm-6">

       <asp:FileUpload ID="FileUpload" runat="server" AllowMultiple="true" />
    </div>

代码背后:

 string ext = System.IO.Path.GetExtension(this.FileUpload.PostedFile.FileName);
   foreach (var file in FileUpload.PostedFiles)
     {
       if (ext == ".jpeg" || ext == ".png" || ext == ".bmp" || ext == ".jpg")
          {
            if (FileUpload.PostedFile.ContentLength > 0 && 
                             FileUpload.PostedFile.ContentLength <= 625000)
                  {.....
                      }

  else if (ext == ".mpeg4" || ext == ".mp4" || ext == ".3gp" || ext == ".flv")
  {
      if (FileUpload.PostedFile.ContentLength > 0 && FileUpload.PostedFile.ContentLength <= 625000)
     {.............................}
  }

问题是当我上传2个文件1 * .jpg文件而另一个是* .mp4文件然后无论我在fileupload控件中选择第一个文件它只插入那个首先被选中的文件,我想插入两个数据库表的不同coloumn中的文件,即图像coloumn中的图像路径和video coloumn中的视频路径。

我还在foreach循环下尝试"string ext = System.IO.Path.GetExtension(this.FileUpload.PostedFile.FileName)"然后首先成功插入图像文件,然后重新插入第二个文件循环开始,获取.mp4值并执行.jpg正文的If语句。并在视频列中插入视频路径。

我不知道为什么即使在检查文件是.mp4之后这个.jpg语句也在执行。这是问题,我正面临着。

注意:当我调试代码字符串时,ext接受.jpg扩展名,之后在foreach循环中,第二个文件来自.mp4格式,然后仍然包含.jpg。

1 个答案:

答案 0 :(得分:0)

你有一个错字。只需在每次迭代时从文件变量访问文件名,而不是在循环之前只访问一次以获得文件扩展名。