好的......所以这里有些东西我甚至不知道它是否可能。是否有可能在代码第一次迁移的初始阶段上载图像文件?例如,创建具有肖像图像的初始网站用户或管理员用户时,是否可以在初次创建该用户期间上传该图像?在执行代码优先迁移过程中上传图片
我找不到任何与SO或在线相关的东西,甚至会提出一个可行的解决方案,所以这可能是第一次尝试这样的事情。
好的......所以这里有些东西我甚至不知道它是否可能。是否有可能在代码第一次迁移的初始阶段上载图像文件?例如,创建具有肖像图像的初始网站用户或管理员用户时,是否可以在初次创建该用户期间上传该图像?在执行代码优先迁移过程中上传图片
我找不到任何与SO或在线相关的东西,甚至会提出一个可行的解决方案,所以这可能是第一次尝试这样的事情。
下面是众多可能的方式做一些远程上传之一,这是最简单的一个:
using (var webClient = new WebClient())
{
webClient.UploadFile("ftp://localhost/samplefile.jpg", "samplefile.jpg");
}
对于这个工作,你应该添加using System.Net;
到迁移文件。另外,显然你需要处理上传权限和凭证,这取决于你使用的远程回购的类型。
编辑:
使用File对象更是微不足道。这里是移植类的完整代码:
using System;
using System.Data.Entity.Migrations;
using System.IO;
public partial class MigrationWithFileCopy : DbMigration
{
public override void Up()
{
File.Copy("sourceFile.jpg", "destinationFile.jpg");
}
public override void Down()
{
File.Delete("destinationFile.jpg");
}
}
我将执行此操作,尝试并让您知道。谢谢:) –
可以用system.io而不是system.net吗?像使用系统文件对象?如果可能的话,我想为目的地使用服务器映射路径而不是URI。 –
很好!感谢您的变体。我会尽快测试并尽快回复你。 –
你想“上传”它的位置?如果这对你来说是一个可行的解决方案,你可以将它种入数据库领域。 – OctoCode
我宁愿不将它“种”到数据库中,而是使用图像名称的GUID将其上传到所有肖像的“回购”。这就是即时通讯在生产环境中使用,并以某种方式在迁移中复制它(如果可能的话) –