2010-08-26 47 views
0

我想使用swfUpload jquery/flash插件上傳,並且我遵循Steven Sanderson(http://blog.stevensanderson.com/2008/11/24/jquery-ajax-uploader-plugin-with-progress-bar/)的方法。但我無法讓它工作。它在我從他的網站上下載的示例應用程序中工作正常。試圖讓它起作用我已經嘗試直接在我的應用程序中複製他的頁面和所有內容,但它仍然不起作用。如何讓swfupload與Asp.Net MVC一起工作2

這裏的頁面:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
    <head> 

    <title>File upload</title> 
     <link rel="Stylesheet" href="../../Content/Site.css" /> 
<%--  <script src="../../Scripts/jquery-1.2.6.min.js"></script>--%> 
     <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
     <script type="text/javascript" src="../../Scripts/swfupload.js"></script> 

     <script type="text/javascript" src="../../Scripts/jquery-asyncUpload-0.1.js"></script> 
    </head> 
    <body> 
     <div id="MainContents"> 
      <form enctype="multipart/form-data" method="post"> 
       <h1>Your profile</h1> 
       <p>(In a real app, other form controls would appear here)</p> 
       <p> 
        Upload your photo: <input type="file" id="photo" name="photo" /> 
       </p> 

       <input type="submit" value="Save my profile" /> 
      </form> 
     </div>   
     <script type="text/javascript"> 
      $(function() { 
       $("#photo").makeAsyncUploader({ 
        upload_url: "/Customers/AsyncUpload/", 
        flash_url: '../../Scripts/swfupload.swf', 
        button_image_url: '/Content/blankButton.png', 
        disableDuringUpload: 'INPUT[type="submit"]' 
       }); 
      });   
     </script> 
     <div id="result"></div> 
    </body> 
</html> 

而這裏的操作方法:

public Guid AsyncUpload() 
    { 

     return _fileStore.SaveUploadedFile(Request.Files[0]); 
    } 

這是一個CustomersController控制器,我有這個在控制器的開頭:

private IFileStore _fileStore = new DiskFileStore(); 

就像他在他的樣本中一樣。當然,我也有IFileStore接口和DiskFileStore類。

我的js文件和css頭標記的所有引用:

<head> 

<title>File upload</title> 
    <link rel="Stylesheet" href="../../Content/Site.css" /> 
    <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript" src="../../Scripts/swfupload.js"></script> 
    <script type="text/javascript" src="../../Scripts/jquery-asyncUpload-0.1.js"></script> 
</head> 

(雖然我已經使用了最新的jQuery我,而不是1.2.6這是他自己的樣品中有) 。我知道至少腳本是被觸發的,因爲在FireBug中,我可以看到輸入被動態地改變爲flash對象,就像它應該是的。

事情是,AsyncUpload()甚至永遠不會被調用。我在那裏設置了一個永遠不會到達的斷點。我得到了不同的錯誤。我第一次嘗試它時,腳本的警告框中出現了302錯誤。 (當時我在同一頁面上有其他jQuery腳本,所以我只用這些腳本開始了一個更清晰的頁面)。但是現在我沒有收到任何錯誤,我可以選擇圖片和所有內容,但只是在文本顯示「上傳...」的階段停止播放,但我沒有看到進度條或任何內容,永遠不會完成。

任何想法我做錯了什麼?

+0

SWFUpload的沒有用MVC爲你工作? – 2013-01-08 06:16:33

回答

0

事實證明,問題是它沒有在Firefox中工作,只有IE瀏覽器(用於更改...)。餅乾的東西。對於任何感興趣的人,請參閱上面我提到的Steven Sanderson博客中的評論部分!

1

使用下面的CSS固定Firefox的問題

DIV.ProgressBar { 
    width: 100px; padding: 0; border: 1px solid black; margin-right: 1em; 
    height:.75em; margin-left:1em; display:-moz-inline-stack; 
    display:inline-block; zoom:1; *display:inline; 
} 
DIV.ProgressBar DIV { 
    background-color: Green; font-size: 1pt; height:100%; float:left; 
} 
SPAN.asyncUploader OBJECT { 
    position: relative; top: 5px; left: 10px; 
} 
相關問題