1. 程式人生 > >C#實現Web檔案上傳

C#實現Web檔案上傳

一、前臺頁面:           

 <form runat="server">

                <asp:FileUpload ID="FileUpload1" runat="server" />
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上傳" />
                <br />
                <br />
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                <br />
                <asp:Image ID="Image1" runat="server" Visible="False" />
                <asp:Label ID="fileUrl" runat="server" Text="Label" Visible="false"></asp:Label>
                <asp:Label ID="fileName" runat="server" Text="Label" Visible="false"></asp:Label>
                <asp:Label ID="filesize" runat="server" Text="Label" Visible="false"></asp:Label>
                <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

            </form>

二、後臺程式碼:

 protected void Button1_Click(object sender, EventArgs e)
        {
            bool fileOK = true;


            //檔案的上傳路徑
            string path = Server.MapPath("Files\\");


            //判斷上傳資料夾是否存在,若不存在,則建立
            if (!Directory.Exists(path))
            {
                //建立資料夾 
                Directory.CreateDirectory(path);
            }
            if (FileUpload1.HasFile)
            {


                //允許上傳的型別
                //string[] allowExtesions = { ".doc", ".xls", ".rar", ".zip", ".ppt" };
                //for (int i = 0; i < allowExtesions.Length; i++)
                //{
                //    if (fileExtesion == allowExtesions[i])
                //    {
                //        //檔案格式正確 允許上傳
                //        fileOK = true;
                //    }
                //}


                string name = FileUpload1.FileName;// 獲得上傳檔案的名字.
                int size = FileUpload1.PostedFile.ContentLength;// 檔案大小.
                if (size > (10 * 1024))
                {
                    fileOK = false;
                    Label2.Text = "檔案過大";
                }
                string type = FileUpload1.PostedFile.ContentType;// 檔案型別.


                // 獲取上傳檔案的型別(字尾)
                string fileExtesion = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();


                //string type2 = name.Substring(name.LastIndexOf(".") + 1);// LastIndexOf()最後一個索引位置匹配.Substring()裡面的+1是過載.
                if (fileOK)
                {
                    try
                    {
                        Random ranNum = new Random();


                        // 在1和1000之間的隨機正整數
                        int num = ranNum.Next(1, 1000);


                        // 獲取當前時間
                        string newname = System.DateTime.Now.ToString("yyyyMMddHHmmssffff");


                        // 宣告檔名,防止重複
                        newname = newname + num + fileExtesion;


                        string ipath = Server.MapPath("Files\\upimg") + "\\" + newname; // 取得根目錄下面的upimg目錄的路徑.
                        string fpath = Server.MapPath("Files\\upfile") + "\\" + newname;
                        string wpath = "Files\\upimg\\" + newname; // 獲得虛擬路徑
                        if (fileExtesion == ".jpg" || fileExtesion == ".gif" || fileExtesion == ".bmp" || fileExtesion == ".png")
                        {
                            FileUpload1.SaveAs(ipath); // 儲存方法,引數是一個地址字串.
                            Image1.ImageUrl = wpath;
                            Label1.Text = "你傳的檔名是:" + name + "<br>檔案大小為:" + size + "位元組<br>檔案型別是:" + type +
                                "<br>字尾是:" + fileExtesion + "<br>實際路徑是:" + ipath + "<br>虛擬路徑是:" + fpath;
                            Image1.Visible = true;
                            fileUrl.Text = ipath;
                        }
                        else
                        {
                            Image1.Visible = false;
                            FileUpload1.SaveAs(fpath);
                            Label1.Text = "你傳的檔名是:" + name + "<br>檔案大小為:" + size + "位元組<br>檔案型別是:" + type +
                                "<br>字尾是:" + fileExtesion + "<br>實際路徑是:" + ipath + "<br>虛擬路徑是:" + fpath;
                            fileUrl.Text = fpath;
                        }
                        // FileUpload1.PostedFile.SaveAs(path + newname);


                        //Session["filename"] = newname;
                        Label2.Text = "上傳成功";
                        fileName.Text = name;
                        filesize.Text = size.ToString();
                        //lab_upload.Text = "上傳成功";
                    }
                    catch (Exception ex)
                    {


                        Label2.Text = "上傳失敗";
                        throw ex;
                    }
                }
            }
            else
            {
                //尚未選擇檔案
                Label2.Text = "尚未選擇任何檔案,請選擇檔案";
                return;
            }
        }

相關推薦

C#實現Web檔案

一、前臺頁面:             <form runat="server">                 <asp:FileUpload ID="FileUpload1" runat="server" />                

C#實現檔案功能(二)---webuploader

                                        一、問題來源 近些時候,處理專案的時候發現如果使用者上傳大檔案的時候使用HtmlInputFile通過httppostfilebase 來實現上傳,如果檔案較小的話較小的話,上傳沒有問題(4M)

Java Web FormData格式資料流實現檔案

1.html <``input type="file" multiple="multiple" accept="image/gif, image/jpeg, image/png, image/jpg, image/bmp" /> 2.JS $(document).on("ch

Flask+uWSGI+Nginx實現簡單檔案web應用

本文不講理論,只講過程!!! 主機環境: rhel 7.2 x86_64bit 192.168.1.112 python系統自帶 1、安裝flask pip install Flask # tar -xzvf pip-1.5.4.tar

java web 檔案實現

使用jspsmart完成檔案上傳 用於向伺服器上傳的表單 <%@ page contentType="text/html;charset=UTF-8" language="ja

基於RTOS的c語言實現http檔案

本實驗為了減少程式碼量,使用了封裝比較完善的http庫,本文主要講述http檔案上傳的主要要求。 一、分析http關鍵頭部資訊 為了分析http header,我們通過chrome得到上傳檔案時的http資訊: 通過上面的截圖我們可以發現,關鍵頭部

java web檔案與下載

jsp程式碼(檔案上傳) <form id="upLoad" method="post">

Spring MVC實現MultipartFile檔案功能

前端 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>修改資訊</title> </head> <body

javaweb實現圖片檔案

圖片上傳到檔案中,可以直接上傳圖片到目錄中,也還可以將圖片檔名、檔案路徑寫入到資料庫中,也可以在程式中動態的建立檔案路徑。 參看:http://blog.csdn.net/lmdcszh/article/details/9201173 package com.ioif.wha.ima

java web 檔案的總結

前言 1. 關於enctype=”multipart/form-data”: 對於表單enctype屬性,w3school解釋如下:規定在傳送到伺服器之前應該如何對錶單資料進行編碼,預設的,表單資料會編碼為 “application/x-www-form-urlencoded” 就

TP5實現檔案及展示

view層上傳: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body&

jq實現前端檔案

FormData FormData是XMLHttpRequest Level 2 新增的一個介面。 使用FormData可以實現各種檔案上傳。   使用 // 建立FormData的例項 var formdata = new FormData(); // 用append()為例項新

webuploader實現檔案

問題:  1: 上傳失敗,不知道怎麼在服務端寫返回值?  2: 做個多檔案上傳怎麼辦?  1:上傳失敗,不知道怎麼在服務端寫返回值? (1):首先在初始化Web Uploader  的方法寫上 server: 'http://localho

在SSM框架中使用AJAX實現檔案

今天來學習一下在SSM框架中使用ajax實現檔案的上傳。 1.首先我們需要一個搭建好的SSM框架專案,這個在這篇文章裡不是重點,自行先搭建好需要的專案。 這裡我是用的jsp頁面來和後臺介面關聯,在jsp檔案中我們需要一個form表單,請求方法為POST,enctype="mu

java jsch實現sftp檔案,並且控制的速度,同時監控進度

工作中,有些環境頻寬有限,比如說專線,通常頻寬比較小,又不便宜,當業務量大的時間,如果在專線上還要傳輸檔案的話,往往在檔案傳輸的時間會導致頻寬佔慢,就有可能導致時實交易進不來,有可能影響交易,今天貼一下 jsch實現sftp檔案上傳,並且控制上傳的速度,同時監控上傳進度,供大家參考。

AJAX+Servlet3.0實現非同步檔案(單個檔案、多個檔案、帶檔案的表單提交)

   一、上傳單個檔案           1.JSP頁面程式碼       <%@ page language="java" contentType="text/html;

java實現檔案01

1、html程式碼 <html> <head> <link rel="stylesheet" type="text/css" href="table.css" /> <link rel="stylesheet" type="text/css"

TCP實現文字檔案

伺服器端: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputS

easyPoi實現Excel檔案下載

easyPoi 官方API http://easypoi.mydoc.io/ pom引入 <dependency> <groupId>cn.afterturn</groupId> <

vue+element+springboot實現.txt檔案

前端html程式碼 <div class="p-upload-box"> <form action='dic/uploadWord' enctype='multipart/form-data' method='post' id="fileUpl