我正在使用jQuery fileupload插件,我想在完成fileupload后做一些自定义jQuery的东西
从这里 https://github.com/blueimp/jQuery-File-Upload/wiki/Options
现在它说了这个
Callback for successful upload requests.
$('#fileupload')
.bind('fileuploaddone', function (e, data) {/* ... */})
Run Code Online (Sandbox Code Playgroud)
现在我已经在我自己的js文件中定义了这个自定义函数进行测试
$('#fileupload').bind('fileuploaddone', function (e, data) {/* ... */
alert('Hello');
})
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
但如果我在这里编辑主文件
// Callback for successful uploads:
done: function (e, data) {
Run Code Online (Sandbox Code Playgroud)
然后它工作.
我目前正在使用asp.net mvc 4,并使用jquery-file-upload来上传图片,如果我这样初始化:
$('#fileupload').fileupload();
$('#fileupload').fileupload('option', {
//url: '/Admin/News/Create',
maxFileSize: 500000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxNumberOfFiles: 1,
resizeMaxWidth: 1920,
resizeMaxHeight: 1200,
});
Run Code Online (Sandbox Code Playgroud)
当选择图像文件时,图像可以在borwser中预览,但在mvc Action Request.Files.Count为0时,表示没有上传文件.如果我这样初始化:
//$('#fileupload').fileupload();
$('#fileupload').fileupload('option', {
//url: '/Admin/News/Create',
maxFileSize: 500000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxNumberOfFiles: 1,
resizeMaxWidth: 1920,
resizeMaxHeight: 1200,
});
Run Code Online (Sandbox Code Playgroud)
我无法预览图像,但mvc Action获取文件,有谁知道为什么?控制器的邮政编码:
[HttpPost]
[ValidateInput(false)]
public ActionResult Create(NewsViewModel model, FormCollection form)
{
if (ModelState.IsValid)
{
//....
// upload image
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string path = Path.Combine(Server.MapPath("~/Uploads/News/"),GUID.NewGuid()+ Path.GetExtension(hpf.FileName));
hpf.SaveAs(path);
data.ImagePath …Run Code Online (Sandbox Code Playgroud) 经过一些谷歌搜索,我无法找到使用jQuery文件上传插件的音频和视频预览扩展的示例.
http://blueimp.github.io/jQuery-File-Upload/
有没有人用过这些可以提供最小例子的人?
我有一个表单,允许在动态添加到表单的各个字段中上传文件.我正在使用Blueimp的jQuery文件上传插件.我正在尝试在一个请求中发送多个文件.我不希望发送多个请求.当我提交表单时,要上载的文件不包含在请求中.我将它们保存在add方法的filesList数组中,并确保覆盖现有值.然后我使用send选项发送文件.虽然,他们不包括在ajax帖子中.我错过了什么?我在网上见过别人试图做到这一点.但是,我还没有找到一个可靠的工作示例.以下是我的代码:
var fileList = [],
exists = false;
$form.fileupload({
autoUpload: false,
singleFileUpload: false,
url: '/handler.php',
add: function(e, data) {
exists = false;
for(var i = 0, len = filesList.length; i < len; i++) {
if(filesList[i].paramName === data.paramName) {
// file already exists for this param, replace it
exists = true;
filesList[i] = data;
break;
}
}
// no file exists for this param, add it to array
if(!exists) {
filesList.push(data);
}
$form.off('submit').one('submit', function(e) {
$form.fileupload('send', {
files: filesList
});
return …Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery文件上传插件https://github.com/blueimp/jQuery-File-Upload/wiki将多个文件上传到服务器.我将使用自定义Web服务将上传的图像存储在服务器上.但是,除了POST请求主体之外,我还需要将正在上载的文件的名称传递给Web服务.因此,对于每个文件传输,我还需要将该文件的名称传递给Web服务.有人可以告诉我如何获取文件名并将其与每个上传请求一起发送?我基本上需要从现场获取它,没有任何额外的输入字段.如果用户选择了10个文件,我需要为队列中的每个文件取名,并使用上传请求提交.
谢谢.
我尝试使用OneupUploaderBundle上传文件.我多次阅读此捆绑包的文档,但我没有设法找到要上传文件的实体的任何简单示例.我的期望是一个类似于以下的类定义VichUploaderBundle:
<?php
namespace Minn\AdsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Validator\Constraints as Assert;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity
* @Vich\Uploadable
*/
class MotorsAdsFile {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @Assert\File(
* maxSize="5M",
* mimeTypes={"image/png", "image/jpeg"}
* )
* @Vich\UploadableField(mapping="motors_files", fileNameProperty="filename")
* note: This is not a mapped field of entity metadata, just a simple property.
* @var File $file
*/
protected $file;
/**
* @ORM\Column(type="string", length=255, …Run Code Online (Sandbox Code Playgroud) 我创建了一个带有进度条的新的多拖放文件上传控件.它适用于所有浏览器,除了IE 10及更高版本的问题.
当我在IE中上传文件时,大多数时候jquery异步请求都无法完成.它显示待定.我可以看到它在IE网络调试器窗口中待定.但在所有其他浏览器中它运行良好.我无能为力这里有什么不妥.最初我认为它可能与缓存有关.但在服务器响应中添加以下参数后.它仍然处于待定状态
context.Response.AppendHeader("Cache-Control", "no-cache"); // HTTP 1.1
context.Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1
Run Code Online (Sandbox Code Playgroud)

for (var i = 0; i < files.length; i++) {
var data = new FormData();
data.append(files[i].name, files[i]);
uploadFile(handlerurl, data);
}
function uploadFile(handlerurl, formData) {
var jqXHR = $.ajax({
type: 'POST',
url: handlerurl,
contentType: false,
processData: false,
async: true,
cache: false,
data: formData,
xhr: function () { },
success: function (result, status, xhr) { },
error: function (xhr, status, error) { }
});
}
Run Code Online (Sandbox Code Playgroud)
我在每个文件中调用此函数.我不确定IE有什么问题.
编辑:调试后,发现服务器断点将命中.但是context.Request.Files中没有文件.没有文件从jquery/AJAX发送.您可以通过反复上传同一文件来重现此问题.
jquery html5 internet-explorer xmlhttprequest jquery-file-upload
当我尝试使用Dropzone.js处理Xampp上的文件上传时,我得到了
服务器响应0代码错误.
到目前为止我检查了什么:
请有人帮我吗?我也试过其他文件上传的东西,但我无法将文件上传到我的xampp.我错过了什么?任何帮助都非常感谢.
更新:添加代码:上传表单 - 不要怀疑它的行动,它来自Twig/Symfony
<form id="uploadForm" name="upload" action="{{ 'upload_path' }}" class="dropzone" enctype="multipart/form-data">
<div class="dz-message" data-dz-message>
<span>
Drag & Drop your files here.
</span>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
Dropzone Javascript:
<script type="text/javascript" src="{{ asset('js/dropzone.js') }}"></script>
<script type="text/javascript">
Dropzone.options.uploadForm = {
accept: function(file, done) {
if (file.type != "image/jpeg" &&
file.type != "image/png") {
done("Falsches Datenformat! Ihre Datei muss als JPG oder PNG hochgeladen werden.");
} else {
done();
}
},
success: function(file, response) {
if (file.previewElement) …Run Code Online (Sandbox Code Playgroud) 我有一个上传解决方案,使用与此类似的设置,人们可以将文件拖到页面上并将其上传到S3.
但是,我遇到了XHR/Iframe上传的问题.基本上,如果我遗漏了forceIframeTransport文件将成功上传到S3,但整个页面最终都在S3上,因为这是表单提交的地方.
当我包含forceIframeTransport设置时true,没有任何反应.控制台中没有例外,服务器上没有任何事情发生.
我已经包括jquery.iframe-transport,jquery.ui.widget并且jquery.fileupload在页面,按照这个顺序.
为了将多个文件上传到我正在使用的服务器:
请注意:
jQuery File Upload示例Basic Plus UI用户界面.(另外,我没有在互联网上找到任何相关的例子).upload progress bar(所有文件通用)和upload button(上传所有添加的文件)所以几乎没有UI!我想创建多个文件上传,这将接近于jQuery File Upload示例Basic Plus UI,但是:
目前至少没有办法确定哪个文件出错了!
例如:我从服务器获得以下JSON响应
data.jqXHR.responseText = {"files":[{"error":"error.maxsize"},{"error":"error.maxsize"}]}
Run Code Online (Sandbox Code Playgroud)
但当时有3个上传的文件 - 所以 - 没有信息哪个错误对应哪个文件!
如果我像这样修改上传监听器:
public function onUpload(PreUploadEvent $event)
{
$file = $event->getFile();
$response = $event->getResponse();
$response['files'] = [
'name'=> $file->getBaseName(),
'type'=> $file->getType(),
'size'=> $file->getSize(),
];
return json_encode($response);
} …Run Code Online (Sandbox Code Playgroud) jquery ×5
blueimp ×3
symfony ×3
javascript ×2
php ×2
asp.net-mvc ×1
file ×1
file-upload ×1
html5 ×1
upload ×1