fileupload伺服器上傳文件
A. FileUpload 上傳圖片 本地可以 發布到伺服器上上傳圖片就發生意外錯誤
你先在伺服器上開辟一個臨時文件夾,然後上傳後,再把文件存儲到資料庫。
注意這個文件夾的許可權,要有寫入許可權.
你想一下。你是怎麼 寫入db的。是不是 讀取文件。在客戶端或則伺服器上操作。你有許可權哦。如果你放到iis上,那麼如果沒有設置,你就沒有許可權,因此會寫不進去哦。
B. fileupload控制項都哪些方法
FileUpload控制項,主要用來上傳文件。關鍵的方法就是saveas(),即將本地文件「另存到"(上傳)伺服器的某個指定的目錄.
FileUpload.aspx內容:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUpLoad.aspx.cs" Inherits="FileUpLoad" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無標題頁</title>
</head>
<body>
<form runat="server">
<div>
上傳文件:<asp:FileUpload runat="server" Width="237px" />
<asp:Button runat="server" Text="上傳" Width="79px" />
<asp:Label runat="server" Text="Label" Width="300px"></asp:Label><br />
<br />
</div>
</form>
</body>
</html>
Uploadfile.aspx.cs內容:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
C. 使用asp.net的fileupload上傳視頻文件--保存在資料庫裡面,
if (this.FileUpload.HasFile)
{
string fileExt = (System.IO.Path.GetExtension(FileUpload.FileName)).ToLower();
if (fileExt == ".wmv" || fileExt == ".avi")
{
FileUpload.SaveAs(Server.MapPath(FileUpload.FileName));
//把文件信息存到資料庫里
}
}
但是一般的伺服器上傳文件有大小限制的。不建議你用FileUpload上傳視頻文件。
D. 如何實現上傳文件到伺服器
common-fileupload是jakarta項目組開發的一個功能很強大的上傳文件組件
下面先介紹上傳文件到伺服器(多文件上傳):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;
public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 設置允許用戶上傳文件大小,單位:位元組,這里設為2m
fu.setSizeMax(2*1024*1024);
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath("c://windows//temp");
//開始讀取上傳信息
List fileItems = fu.parseRequest(request);
// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();
//正則匹配,過濾路徑取文件名
String regExp=".+////(.+)$";
//過濾掉的文件類型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){
if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{
//保存上傳的文件到指定的目錄
//在下文中上傳文件至資料庫時,將對這里改寫
item.write(new File("d://" + m.group(1)));
out.print(name+" "+size+"");
}
catch(Exception e){
out.println(e);
}
}
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}
}
}
現在介紹上傳文件到伺服器,下面只寫出相關代碼:
以sql2000為例,表結構如下:
欄位名:name filecode
類型: varchar image
資料庫插入代碼為:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");
代碼如下:
。。。。。。
try{
這段代碼如果不去掉,將一同寫入到伺服器中
//item.write(new File("d://" + m.group(1)));
int byteread=0;
//讀取輸入流,也就是上傳的文件內容
InputStream inStream=item.getInputStream();
pstmt.setString(1,m.group(1));
pstmt.setBinaryStream(2,inStream,(int)size);
pstmt.executeUpdate();
inStream.close();
out.println(name+" "+size+" ");
}
。。。。。。
這樣就實現了上傳文件至資料庫
E. asp.net用FileUpload控制項上傳.zip的壓縮包到伺服器之後自動解壓到指定的文件夾下怎麼實現
分為兩步:
1.
文件上傳到伺服器某個目錄,這一步比較簡單;
2.
將文件進行解壓到某個目錄,這一步需要用到一個Ionic.Zip.dll。
F. ASP.NET+C#,FILEUPLOAD控制項,如何上傳圖片到伺服器,並保存圖片路徑到資料庫
我做了個例子給你
前台:
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server"
Text="Button" onclick="Button1_Click" />
<asp:Image ID="Image1" runat="server" />
</div>
後台:
protected void Button1_Click(object sender, EventArgs e)
{
FileUpload1.SaveAs(Server.MapPath("img/"+FileUpload1.FileName));//上傳圖片
Image1.ImageUrl = "~/img/" + FileUpload1.FileName;//圖片路徑(將這個數據保存到資料庫就可以了。img為項目里一個文件夾的名稱)
}
G. 如何文件上傳至伺服器某一目錄下
有兩種方法上傳程序到伺服器裡面。
涉及到具體目錄,就把ftp軟體定位到那個目錄中。
如果是win系統伺服器,那麼打開遠程桌面,從本地電腦復制文件,到遠程桌面伺服器裡面,粘貼文件,就可以了。
如果有ip地址,ftp賬號密碼,也可以用 ftp軟體上傳。
linux伺服器的話, 就是直接用ftp軟體上傳文件了。
H. fileupload上傳的文件的後綴名怎麼是.tmp
fileupload上傳文件就是tmp的,需要你同時把文件名傳到伺服器,然後在伺服器里轉存為正常格式。tmp是臨時文件
I. FileUpload 無法上傳pdf文件,本地調試的時候可以上傳,上傳到2008伺服器後,有些pdf文件上傳就會超時
第一。先設置Web.Config的上傳超時時間和上傳文件大小。如下
<system.web>
<httpRuntime maxRequestLength= "102400 " useFullyQualifiedRedirectUrl= "true " executionTimeout= "50 "/>
</system.web>
第二。設置完後還不能解決問題。你可以上傳些其他文件,看看是否有問題。如果都有問題,在檢查下代碼吧