1

我想从代码隐藏上传文件。

我想稍微解释一下我的情况。

我现有的代码是..

我有一个文件上传控件。

<asp:FileUpload ID="fuSRForm" runat="server" class="file"/>

然后从代码隐藏中检查该控件的条件。

if (fuSRForm.HasFile && (fuSRForm.PostedFile.ContentType.ToString().Trim().ToLower().Contains("pdf") || fuSRForm.PostedFile.ContentType.ToString().Trim().ToLower().Contains("application/vnd.openxmlformats-officedocument.wordprocessingml.document") || fuSRForm.PostedFile.ContentType.ToString().Trim().ToLower().Contains("msword")))

如果满足条件,

我使用 Sitecore API 上传文件。

这是上传AP​​I的一部分。

                        // creating necessary arguments to be passed to the processor
                        UploadArgs args = new UploadArgs();

                        // adding http files collection
                        args.Files = base.Request.Files;

因此,API 通过使用抓取所有发布的文件base.Request.Files


我的新情况是当用户单击时我创建了一个 pdf 文件Submit

然后我将它保存在一个名为asyncupload

之后我必须Sitecore使用相同的 API上传它

所以,我试图将 更改base.Request.Files为我的文件。

但我无法改变这一点。

所以,我将不得不使用FileUpload控件上传我的文件。

            FileUpload tempFU = new FileUpload();
            tempFU.PostedFile= ????
            args.Files = base.Request.Files;

我被困在这里。我可以从后面的代码中发布我的文件,也可以将其更改base.Request.Files为我的文件。

无论哪种方式,我都被困住了。任何人都可以解决这个问题?

4

2 回答 2

0

我不确定你的最终目标是什么。如果我对您的理解不正确,也许您可​​以发布更多代码。但以下是向媒体库添加文件的方法:Brian Pedersen:以编程方式向 Sitecore 媒体库添加文件

如果您使用的是<asp:FileUpload />控件,则可以像这样将文件保存到服务器磁盘:

string filePath = Path.Combine(Server.MapPath("~/"), "upload/tempfile.tmp");
FileUpload1.SaveAs(filePath);

然后从我上面提供的链接调用该AddFile方法:

AddFile(filePath);
于 2012-11-20T21:48:10.550 回答
0

你需要在你要击中的 api 中使用处理程序并击中它

using (WebClient client = new WebClient()) { client.UploadFile(Sitecore Handler, FilePath); }

于 2017-09-11T11:43:54.073 回答