注册 登录
编程论坛 ASP.NET技术论坛

FileUpload--未将对象引用设置到对象的实例

gsbe1987 发布于 2008-09-22 07:52, 3499 次点击
我用一个FileUpload控件上传图片,原先没什么问题,后来不知道为什么就突然弹出这个提示了,下面是我的代码,this.imageUpload是FileUpload控件的ID来的:
程序代码:
private void ImageUpload()
    {
        DBOperation dbo = new DBOperation();
        pageFunction func = new pageFunction();


        string path = this.imageUpload.PostedFile.FileName;

        FileInfo image = new FileInfo(path);

        string name = image.Name;

        string type = image.Extension;


        if (".png" == type || ".PNG" == type || ".jpg" == type || ".JPG" == type || ".gif" == type || ".GIF" == type)
        {

            string savepath = Server.MapPath("Upload");

            this.imageUpload.SaveAs(savepath + "\\" + name);

            string dbpath = "../BgPage/Upload/" + name;
            dbo.InsertImage(dbpath);

            string insText = "";
            this.editArea.Text = this.editArea.Text + insText;
            func.WriteScipt(this.Page, "alert('上传成功!')");
        }
        else
        {
            func.WriteScipt(this.Page, "alert('不支持该图片类型,请选择gif、png或jpg类型的图片!')");
        }
    }

我调试的时候,错误提示是在
string path = this.imageUpload.PostedFile.FileName;
获取完整路径有问题,但是从代码上看我实在找不出错在什么地方


有哪位高手知道怎么解决的,拜托指点一下,谢谢
4 回复
#2
小瘪三的烦恼2008-09-22 09:10
我水平不行。。。。呵呵。。。
#3
gsbe19872008-09-22 10:00
我做了測試,是控件沒有包含文件,但是控件的ID我并沒有寫錯啊,爲什麽會出現這樣的問題?
#4
gsbe19872008-09-22 10:59
另外要說一下,我的這個上傳控件是在AJAX控件UpdatePanel裡面,是不是跟這個有關係啊?

我發現如果不用這個UpdatePanel控件,不實現無刷新的話,上傳就成功了,但是我用這個控件主要就是為了要這個無刷新,請問有沒有什麽解決的方法?

我設置了UpdatePanel控件的triggers属性增加一个postbacktriggers,然後給postbacktriggers的crotrolid设置为內容頁的ID的話,就可以上傳了,但是這樣的話,每上傳一次,頁面就刷新一次,我并不想要這樣,所以我又試著把triggers属性增加一个AsyncpostbackTrigger,但是這樣就FileUpload控件就無法包含文件了?究竟要怎么設置才能無刷新上傳圖片呢?
#5
hebingbing2008-09-22 11:57
FileUpload控件和ajax控件UpdatePanel是不兼容的,官方暂时好像是没有提出解决方案,但是社区倒是有一些人用自己的方法解决这个问题,你可以到msdn看看……
1