一:能否在winform下获得文件的MimeType,如果能,怎么获取?
二:能否在webform下获得数据库中某文件的MimeType,如果能,怎么获取?(该文件在sqlserver2000下以binary保存)
三:webform下,假如现在用某种方法打开一文件放在内存中(filestream,stream或者用htmlinputfile等打开),能否获得该文件的MimeType(用htmlinputfile打开的已知,file1.posetfile.contenttype)?
二:能否在webform下获得数据库中某文件的MimeType,如果能,怎么获取?(该文件在sqlserver2000下以binary保存)
三:webform下,假如现在用某种方法打开一文件放在内存中(filestream,stream或者用htmlinputfile等打开),能否获得该文件的MimeType(用htmlinputfile打开的已知,file1.posetfile.contenttype)?
解决方案 »
- 谁知道好一点的JQuery入门教程推荐一下
- 请问高手,如何通过拖拉控件访问EXCEL呢?不想手写OLEDB的访问字符串。
- asp.net如何获取js变量
- asp.net2.0网站实现FTP文件上传
- asp.net2.0 的calendar控件: 能否让它在点击时不要回传?
- RadioButtonList控件无法调用javascript脚本
- 能否对整个页面的ViewState一次性赋值
- 请问:哪有免费的asp.net空间申请啊???用于测试,谢谢!!!
- childNodes[1]报错,求执教
- [散分讨论]微软发布下一代ASP.NET并全部开源
- 请问Reporting Servies 安装过程的最后一步报的是Reporting Servies 初始化失败
- 求JS:弹出窗口问题
我也不知道是什么东西,不会就是说的是文件的类型吧?
<%@ page Language="C#" debug="true" %>
<html>
<head>
<title>上传文件 , http://www.chinabs.net </title>
<script language="C#" runat="server">
//This method is called when the "upload" button id pressed
public void UploadFile(object sender , EventArgs E)
{
//检查上传文件不为空
if(myFile.PostedFile!=null)
{
string nam = myFile.PostedFile.FileName ;
//取得文件名(抱括路径)里最后一个"."的索引
int i= nam.LastIndexOf(".");
//取得文件扩展名
string newext =nam.Substring(i);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+myFile.PostedFile.ContentLength.ToString();
//保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
myFile.PostedFile.SaveAs(Server.MapPath("\\upload\\"+newname+newext));
//得到这个文件的相关属性:文件名,文件类型,文件大小
fname.Text=myFile.PostedFile.FileName;
fenc.Text=myFile.PostedFile.ContentType ;
fsize.Text=myFile.PostedFile.ContentLength.ToString();
}
}</script>
</head>
<body>
<center>
<h3> 文件上传的实例, 来自<a href="http://www.chinabs.net">中国BS网</a></h3>
<form id="uploderform" method="post" action="FileUpload.aspx" enctype="multipart/form-data" runat="server" >
<table border="1" cellspacing="2" cellpadding="2" >
<tr> <td><h5>选择要上传的文件:</h5></td</tr>
<tr>
<td>
<input type="file" id="myFile" runat="server" NAME="myFile">
</td>
</tr>
<tr><td>
<input type="button" value="上 传" OnServerClick="UploadFile" runat="server" ID="Button1" NAME="Button1">
</td></tr>
</table>
</form>
<br>
<br>
<table border="1" cellspacing="2">
<tr><td><b>文件资料</b></td>
<td> </td>
</tr>
<tr>
<td>文件名 :</td>
<td><asp:label id="fname" text="" runat="server" /></td></tr>
<tr>
<td>文件类型 :</td>
<td><asp:label id="fenc" runat="server" /></td></tr>
<tr>
<td>文件大小 :(in bytes)</td>
<td><asp:label id="fsize" runat="server" /></td></tr>
</table>
<br>
<br>
<br>
</center>
</body>
</html>
首先谢谢你的回答,但是现在情况是:我有些文件是通过winform写的程序写到数据库中的,我不知道在winform下用什么方法获取到file1.PostFile.ContentType所获取到的类型,例如a.doc,在winform下我只能取到“doc”(这个是我不想要的),而file1.PostFile.ContentType能获取到"application/msword"(这个是我想要的)。
然后在webform又要打开winform传上的文件,这样,这个类型就不是我想要的那个了,所以我很郁闷。To other:
可能我说的MimeType大家不习惯,不好意思,这个是我个人问题,一般下大家叫MIME
Const COMPRESSION_QUALITY As Int32 = 90 ' can be dynamic
Public Sub SaveThumbSize(ByVal sSource As String, ByVal sDestination As String)
imgSrc = New Bitmap(sSource)
Dim ratio As Double
If imgSrc.Width > imgSrc.Height Then
ratio = THUMB_WIDER / imgSrc.Width
imgDstW = THUMB_WIDER
imgDstH = CInt(imgSrc.Height * ratio)
Else
ratio = THUMB_WIDER / imgSrc.Height
imgDstH = THUMB_WIDER
imgDstW = CInt(imgSrc.Width * ratio)
End If
imgDst = New Bitmap(imgSrc, imgDstW, imgDstH)
SaveImage(imgDst, sDestination, COMPRESSION_QUALITY)imgDst.Dispose()
imgSrc.Dispose()
imgDst = Nothing
imgSrc = Nothing
End SubPublic Sub SaveImage(ByRef img As Image, ByVal dest As String, ByVal compression As Integer)
Dim EncoderParams As New EncoderParameters(1)
Try
EncoderParams.Param(0) = New EncoderParameter(Encoder.Quality, compression)
img.Save(dest, GetEncoderInfo, EncoderParams)
Catch ex As Exception
'img.Save(dest)
End Try
EncoderParams.Dispose()
EncoderParams = Nothing
End SubPrivate Function GetEncoderInfo() As ImageCodecInfo
Dim encoderReturn As ImageCodecInfo = Nothing
Dim encoders As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders
Dim encoder As ImageCodecInfo
For Each encoder In encoders
If encoder.MimeType = "image/jpeg" Then
encoderReturn = encoder
End If
Next
encoders = Nothing
Return encoderReturn
End Function这个可能对你有些提示
Private Function getMIME(ByVal Extension As String) As String
Dim regKey As Microsoft.Win32.RegistryKey
regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(Extension)
If regKey Is Nothing Then
getMIME = DEFAULT_MIME
Else
getMIME = regKey.GetValue("Content Type", DEFAULT_MIME)
End If
regKey = Nothing
End Function '调用
MsgBox(getMIME(".doc"))