2

MVC4プロジェクトにFineuploaderを実装しようとしましたが、常にアップロードに失敗します。私がしたこと:

私のビューにcssファイルとjsファイルを追加しました:

<link href="~/Content/fineuploader.css" rel="stylesheet" />
<script src="~/Scripts/js/util.js"></script>
<script src="~/Scripts/js/button.js"></script>
<script src="~/Scripts/js/dnd.js"></script>
<script src="~/Scripts/js/handler.base.js"></script>
<script src="~/Scripts/js/handler.form.js"></script>
<script src="~/Scripts/js/handler.xhr.js"></script>
<script src="~/Scripts/js/header.js"></script>
<script src="~/Scripts/js/jquery-plugin.js"></script> 
<script src="~/Scripts/js/uploader.basic.js"></script>
<script src="~/Scripts/js/uploader.js"></script> 

アップロードボタンのコードとスクリプトの実行を追加しました(これは正しくないと思いますか?)

<script>
    function createUploader() {
        var uploader = new qq.FineUploader({
            element: document.getElementById('fine-uploader'),
            debug: true,
            request: {
                endpoint: '/Upload/UploadFile/'
            }
        });
    }

    window.onload = createUploader;
</script>

C#ファイルをプロジェクトとコントローラーに追加しFineUpload.csましFineUploadResult.csUploadController.cs。コントローラへのルートも追加しました。

routes.MapRoute(
                    name: "upload",
                    url: "Upload/UploadFile",
                    defaults: new { controller = "Upload", action = "UploadFile" }
                );

コントローラは次のとおりです。

public class UploadController : Controller
{
    [HttpPost]
    public FineUploaderResult UploadFile(FineUpload upload, string extraParam1, int extraParam2)
    {
      ...
    }
}

ただしUploadFile、サーバーで呼び出されることはありません。

4

1 に答える 1

4

スクリプトのインクルージョン (順序とすべて) を台無しにしたようです。FineUploaderBasic モード、FineUploader モード、または jQuery プラグイン モードのいずれを使用する必要があるかを選択する必要があります。コードを考えると、標準モードを使用しているようです。

完全に機能する例と最小限のマークアップを次に示します。

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
    <link href="~/Content/fineuploader.css" rel="stylesheet" />
</head>
<body>
    <div id="fine-uploader">Click me to upload a file</div>

    <script src="~/Scripts/js/header.js"></script>
    <script src="~/Scripts/js/util.js"></script>
    <script src="~/Scripts/js/button.js"></script>
    <script src="~/Scripts/js/handler.base.js"></script>
    <script src="~/Scripts/js/handler.form.js"></script>
    <script src="~/Scripts/js/handler.xhr.js"></script>
    <script src="~/Scripts/js/uploader.basic.js"></script>
    <script src="~/Scripts/js/dnd.js"></script>
    <script src="~/Scripts/js/uploader.js"></script> 
    <script type="text/javascript">
        function createUploader() {
            var uploader = new qq.FineUploader({
                element: document.getElementById('fine-uploader'),
                debug: true,
                request: {
                    endpoint: '@Url.Action("UploadFile", "Uploader")'
                }
            });
        }
        createUploader();
    </script>
</body>
</html>

また、コントローラーのアクションは、追加の整数パラメーターを使用しているようです。リクエストで指定しないと、このリクエストは明らかに失敗します。この場合、null 許容整数を使用します。

于 2013-02-19T10:08:40.410 に答える