上传后如何在数据库中存储文件信息?

时间:2017-02-01 12:10:41

标签: c# asp.net database-design

我希望在使用c#将文件上传到我们的服务器后存储文件信息。基本上我们有两个存储位置,即。本地存储和云存储。

DB的结构是

ID        int
CreateOn  smalldatetime
FileUrl  nvarchar(max)
StoreTypeID int

FileUrl存储文件的url,但不存储路径和文件名。

问题是如果我想从数据库和存储中删除此文件,如果存储是本地的,我没有访问该文件的路径,如果它在云中,则应该没有任何问题。 / p>

我的问题是我是否应该跟踪列

Path
Filename 

为了访问本地文件?

可以通过从fileurl中提取文件名来避免使用Filename列。

1 个答案:

答案 0 :(得分:0)

Path.GetFileName(dbObject.FilePath)

只需添加数据库的路径即可。

通过拥有路径变量,您将能够访问文件系统上的文件,如果需要,可以通过ID int CreateOn smalldatetime FileUrl nvarchar(max) FileName nvarchar(300) StoreTypeID int 获取fileName。

但更好的方法就是这样。

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.FlowLayout;

    public class SwingExampleDemo {  
      public static void main(String[] args) {  
          JFrame f=new JFrame();//creating instance of JFrame 
          ImageIcon imageIcon = new ImageIcon("C:\\users\\Acer\\Documents\\images\\1.jpg"); //here image path 
          JLabel jLabel = new JLabel(imageIcon);    
          f.add(jLabel);         
          f.setLayout(new FlowLayout());//using layout managers  
          f.setVisible(true);//making the frame visible  
          f.pack();
       }  
    }

不要使用用户提供的名称存储您的文件,无论是在本地存储还是云端存储。但是将文件名和文件一起记录到数据库中。

当您要将文件保留在本地存储上时,请在代码级别(通过配置更好)获得一个常量路径变量,然后使用带有文件ID的预定义或计算路径附加它。您将知道文件所在的确切位置。