System.IO.FileNotFoundException"发生在Google.GData.Client中.dll但未在用户代码中处理



我正在尝试从我的 c# 项目中上传 youtube 中的视频。

但是当我尝试上传时,我收到这样的异常:

System.IO.FileNotFoundException' 发生在 Google.GData.Client 中.dll但未在用户代码中处理 以及如下所示的异常详细信息

找不到文件"C:\Program Files\IIS Express\Wildlife.wmv":"C:\Program Files\IIS Express\Wildlife.wmv

我的代码是这样的 这是设计页面

Upload Video:<asp:FileUpload ID="fileupload1" runat="server"  />
<asp:Button ID="btnUpload" runat="server" Text="Upload" 
onclick="btnUpload_Click" /

我的代码隐藏代码是这样的:

protected void btnUpload_Click(object sender, EventArgs e)
{           
YouTubeRequestSettings setting = new YouTubeRequestSettings("prakashtest", "AI39si4EpdRFuvaGm8WNIBIHPmpSfiT7Qmy_WIfhDz3OrLmTwqS0lX_8lcCmBTKq-spys_TfQ8ysWRyg9kB5nFYCifmzgPlFKw", "your_u_tube_username", "your_u_tube_password");
YouTubeRequest request = new YouTubeRequest(setting);
Video newVideo = new Video();
newVideo.Title = "My Test Movie";
newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));
newVideo.Keywords = "cars, funny";
newVideo.Description = "My description";
newVideo.YouTubeEntry.Private = false;
newVideo.Tags.Add(new MediaCategory("mydevtag, anotherdevtag",
YouTubeNameTable.DeveloperTagSchema));
newVideo.YouTubeEntry.Location = new GeoRssWhere(37, -122);


newVideo.YouTubeEntry.MediaSource = new MediaFileSource(fileupload1.PostedFile.FileName,
"video/quicktime");
Video createdVideo = request.Upload(newVideo);
}

我在这里收到错误Video createdVideo = request.Upload(newVideo);

如何解决这个问题??

您要将上传文件的文件名传递给MediaFileSource构造函数。这是行不通的,尤其是一旦部署在 Web 服务器上。它仅返回用户选取的文件的名称,然后解析为相对于 Web 应用程序的起始目录的路径(在 IIS Express 上C:Program FilesIIS Express,在 IIS 上C:WindowsSystem32inetsrvIIS 上

)。如果MediaFileSource支持,则将流传递给上传的文件(fileUpload1.UploadedFile.InputStream),或者将上传的文件临时存储在磁盘上(fileUpload1.UploadedFile.SaveAs()),将该路径传递给构造函数并在上传后删除文件。

您可能还希望将上传卸载到单独的 Windows 服务,因为现在您的用户必须首先等到文件上传到您的网络服务器,然后等到您的网络服务器将其上传到 YouTube,直到他们收到响应。

使用这些类还表示你使用的是已弃用的 V2 API(博客来自 2012 年),请改用 V3。

相关内容

最新更新