2013-02-15 4 views
1

У меня есть странная проблема с Plupload, и я надеялся, что вы сможете мне помочь.Plupload работает только на MVC

Я использую его с MVC и Amazon S3, и, взяв образец, все работает отлично.

Таким образом, в настоящее время он находится в виде индекса HomeController.

Поэтому, если я перехожу к localhost /, он работает без проблем.

Если я перейду к localhost/Home, кнопка «Добавить файл» не будет доступна для клика из-за того, что _Flash_Container находится в пути.

Даже если я использую Firebug, чтобы узнать, как кнопка «Добавить файл» ничего не делает.

У кого-нибудь есть идеи?

Мой код выглядит следующим образом:

@model MVC3PluploadToAmazonS3.ViewModels.FileUploadViewModel 
@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Upload to Amazon S3</h2> 

<div id="uploader"> 
    <p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p> 
</div> 

<input type="hidden" name="key" value="@Model.FileId-${filename}"> 
<input type="hidden" name="AWSAccessKeyId" value="@Model.PublicKey"> 
<input type="hidden" name="acl" value="@Model.Acl"> 
<input type="hidden" name="success_action_redirect" value="@Model.RedirectUrl"> 
<input type="hidden" name="policy" value="@Model.Policy"> 
<input type="hidden" name="signature" value="@Model.Signature"> 

@section scriptFiles { 
<script> 

$(document).ready(function() { 

    $("#uploader").plupload({ 
     //amazon settings. 
     runtimes: 'flash,silverlight', 
     url: 'https://rapplex.s3-eu-west-1.amazonaws.com', 
     max_file_size: '100000000mb', 
     multipart: true, 
     multipart_params: { 
      'key': '${filename}', // use filename as a key 
      'Filename': '${filename}', // adding this to keep consistency across the runtimes 
      'acl': $('#Acl').val(), 
      'Content-Type': 'binary/octet-stream', 
      'success_action_status': '201', 
      'AWSAccessKeyId': $('#AWSAccessKeyId').val(), 
      'policy': $('#Policy').val(), 
      'signature': $('#Signature').val() 
     }, 
     // optional, but better be specified directly 
     //file_data_name: 'file', 
     // re-use widget (not related to S3, but to Plupload UI Widget) 
     //multiple_queues: true, 

     // Resize images on clientside if we can 
     //resize: { width: 320, height: 240, quality: 90 }, 

     // Specify what files to browse for 
     filters: [ 
      // { title: "Video files", extensions: "mp4,m4v,wmv,avi,mov,mpg,mpeg,mkv" } 
      { title: "Image files", extensions: "jpg,gif,png" }, 
      //{ title: "Zip files", extensions: "zip" } 
     ], 

     // Flash settings 
     flash_swf_url: 'Scripts/plupload/plupload.flash.swf', 

     // Silverlight settings 
     silverlight_xap_url: 'Scripts/plupload/plupload.silverlight.xap' 
    }); 

}); 
</script> 

} 

Любая помощь будет принята с благодарностью

EDIT: OK некоторые я сделал некоторые дополнительные исследования.

Кажется, что localhost/home работает, но localhost/home/и localhost/home/index не работают.

Я заметил, что в исходном файле css есть куча @Import * .css, и они изменили их на /path/to/file.css, который не имеет значения. Я также попытался удалить первую косую черту из @imports, но это просто удалило весь стиль, поэтому я знаю, что это не так.

Я также попытался изменить путь .swf как абсолютный (localhost: 2668/Scripts/plupload/plupload.flash.swf), но это также не сработало.

+0

Это также происходит с localhost/Home/(с трейлингом /)? Также было интересно, изменит ли ваш flash_swf_url на абсолютный путь что-то изменится – jbl

+0

При расследовании у меня есть дополнительная информация, включая ответ на ваш первый вопрос. См. Мое редактирование. –

+0

Попробуйте этот абсолютный путь вместо 'flash_swf_url: '/ Scripts/plupload/plupload.flash.swf'' – phloopy

ответ

0

Как указывал флюопид, он вводил путь к swf.

См. Комментарии к ответу.

Thanks mate.