У меня есть странная проблема с 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), но это также не сработало.
Это также происходит с localhost/Home/(с трейлингом /)? Также было интересно, изменит ли ваш flash_swf_url на абсолютный путь что-то изменится – jbl
При расследовании у меня есть дополнительная информация, включая ответ на ваш первый вопрос. См. Мое редактирование. –
Попробуйте этот абсолютный путь вместо 'flash_swf_url: '/ Scripts/plupload/plupload.flash.swf'' – phloopy