我正在尝试从我的 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:WindowsSystem32inetsrv
IIS 上
)。如果MediaFileSource
支持,则将流传递给上传的文件(fileUpload1.UploadedFile.InputStream
),或者将上传的文件临时存储在磁盘上(fileUpload1.UploadedFile.SaveAs()
),将该路径传递给构造函数并在上传后删除文件。
您可能还希望将上传卸载到单独的 Windows 服务,因为现在您的用户必须首先等到文件上传到您的网络服务器,然后等到您的网络服务器将其上传到 YouTube,直到他们收到响应。
使用这些类还表示你使用的是已弃用的 V2 API(博客来自 2012 年),请改用 V3。