首页 > 解决方案 > 如何使用实体框架将文件上传到一个列到服务器?

问题描述

如何在一行中上传/保存文件?

我编写的代码是创建两行并将其他字段保留为空,然后将其他文件插入新行以代替第一行中的空值。这是插入到 db 中的图像:

这是我想要插入的东西:

检查上传输入是否有文件后,如何使代码将文件插入一行?

if (resume.HasFile == true && resume.PostedFile.ContentLength > 0)
{
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(resume.FileName);
    string extension = Path.GetExtension(resume.FileName);
    string resumeName = "resume" + extension;

    BinaryReader Binary_Reader = new BinaryReader(resume.PostedFile.InputStream);
    byte[] File_Buffer = Binary_Reader.ReadBytes(resume.PostedFile.ContentLength);
    Binary_Reader = new BinaryReader(resume.PostedFile.InputStream);
    File_Buffer = Binary_Reader.ReadBytes(resume.PostedFile.ContentLength);
    myServiceCP.LicenseApplicationAttachments.Add(new LicenseApplicationAttachment
    {
        resumeName = resumeName,
        CompanyName = control.CompanyName,
        userid = Guid.NewGuid(),
        resumeContentType = resume.PostedFile.ContentType,
        resumeExtension = Path.GetExtension(resume.PostedFile.FileName),
        resumeSize = resume.PostedFile.ContentLength,
        resumeContent = File_Buffer
    });
}

if (cv.HasFile == true)
{
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(cv.FileName);
    string extension = Path.GetExtension(cv.FileName);
    string cvFileName = "cv" + extension;

    BinaryReader Binary_Reader = new BinaryReader(cv.PostedFile.InputStream);
    byte[] File_Buffer = Binary_Reader.ReadBytes(cv.PostedFile.ContentLength);
    Binary_Reader = new BinaryReader(cv.PostedFile.InputStream);
    File_Buffer = Binary_Reader.ReadBytes(cv.PostedFile.ContentLength);
    myServiceCP.LicenseApplicationAttachments.Add(new LicenseApplicationAttachment
    {
        cvFileName = cvFileName,
        CompanyName = control.CompanyName,
        cvContentType = CapitalStructureShareHoldingFile.PostedFile.ContentType,
        cvExtension = Path.GetExtension(CapitalStructureShareHoldingFile.PostedFile.FileName),
        cvFileSize = CapitalStructureShareHoldingFile.PostedFile.ContentLength,
        cvFileContent = File_Buffer
    });
}    
myServiceCP.SaveChanges();
}

标签: c#sql-serverentity-frameworkrow

解决方案


您应该有一个变量并添加您必须开始的信息,然后在您的 if 语句中将您需要的信息添加到您的变量然后将变量添加到您的数据库

像这样:

if (resume.HasFile == true && resume.PostedFile.ContentLength > 0)
{
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(resume.FileName);
    string extension = Path.GetExtension(resume.FileName);
    string resumeName = "resume" + extension;

    BinaryReader Binary_Reader = new BinaryReader(resume.PostedFile.InputStream);
    byte[] File_Buffer = Binary_Reader.ReadBytes(resume.PostedFile.ContentLength);
    Binary_Reader = new BinaryReader(resume.PostedFile.InputStream);
    File_Buffer = Binary_Reader.ReadBytes(resume.PostedFile.ContentLength);

    var applicationToAdd = new LicenseApplicationAttachment
    {
        resumeName = resumeName,
        CompanyName = control.CompanyName,
        userid = Guid.NewGuid(),
        resumeContentType = resume.PostedFile.ContentType,
        resumeExtension = Path.GetExtension(resume.PostedFile.FileName),
        resumeSize = resume.PostedFile.ContentLength,
        resumeContent = File_Buffer
    };


    if (cv.HasFile == true)
    {
        string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(cv.FileName);
        string extension = Path.GetExtension(cv.FileName);
        string cvFileName = "cv" + extension;

        BinaryReader Binary_Reader = new BinaryReader(cv.PostedFile.InputStream);
        byte[] File_Buffer = Binary_Reader.ReadBytes(cv.PostedFile.ContentLength);
        Binary_Reader = new BinaryReader(cv.PostedFile.InputStream);
        File_Buffer = Binary_Reader.ReadBytes(cv.PostedFile.ContentLength);

        applicationToAdd.cvFileName = cvFileName;
        applicationToAdd.CompanyName = control.CompanyName;
        applicationToAdd.cvContentType = CapitalStructureShareHoldingFile.PostedFile.ContentType;
        applicationToAdd.cvExtension = Path.GetExtension(CapitalStructureShareHoldingFile.PostedFile.FileName);
        applicationToAdd.cvFileSize = CapitalStructureShareHoldingFile.PostedFile.ContentLength;
        applicationToAdd.cvFileContent = File_Buffer;

    } 
    myServiceCP.LicenseApplicationAttachments.Add(applicationToAdd);
    myServiceCP.SaveChanges();
}

推荐阅读