我使用telerik RadAsyncUpload(asp)保存文件:
<telerik:RadAsyncUpload runat="server" Localization-Select="select file" Localization-Remove="delete"
Width="10px" ID="RadAsyncUpload1" MultipleFileSelection="Automatic" AllowedFileExtensions="jpg,jpeg,png,gif,pdf"
ControlObjectsVisibility="None" EnableFileInputSkinning="true" />
在我做的代码中:
byte[] bytes = null;
if (RadAsyncUpload1 != null)
{
foreach (UploadedFile file in RadAsyncUpload1.UploadedFiles)
{
bytes = new byte[file.ContentLength];
file.InputStream.Read(bytes, 0, file.ContentLength);
WinPic.VisibleOnPageLoad = true;
BinaryImage.DataValue = bytes;
}
}
并以列数据类型保存在sql中:varbinary(MAX)。
用于查看我使用的文件:
<telerik:RadBinaryImage runat="server" ID="BinaryImage" Width="600px" Height="600px"
ResizeMode="Fit" AutoAdjustImageControlSize="true" DecoratedControls="All" />
但我的问题是,当我查看文件类型pdf时,它不起作用。 我看到这样的图片:
希望你的帮助 坦克!
答案 0 :(得分:1)
PDF is not a supported DataValue of RadBinaryImage
您还可以阅读该主题以获取有关如何显示PDF文件的其他解决方案。
我就是这样做的:
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=" + fileName + ".pdf");
HttpContext.Current.Response.BinaryWrite(bytes);
HttpContext.Current.Response.End();
与telerik线程中的内容类似,我打开一个新窗口并对字节数组进行二进制写入。