相关疑难解决方法(0)

使用jQuery.ajax发送multipart/formdata

我使用jQuery的ajax函数将文件发送到服务器端PHP脚本时遇到问题.可以获取文件列表$('#fileinput').attr('files')但是如何将此数据发送到服务器?使用文件输入时$_POST,服务器端php脚本上的结果array()为0(NULL).

我知道这是可能的(虽然我到目前为止还没有找到任何jQuery解决方案,只有Prototye代码(http://webreflection.blogspot.com/2009/03/safari-4-multiple-upload-with-progress.html) ).

这似乎是相对较新的,所以请不要通过XHR/Ajax提及文件上传,因为它肯定有用.

我需要Safari 5中的功能,FF和Chrome会很好但不是必需的.

我现在的代码是:

$.ajax({
    url: 'php/upload.php',
    data: $('#file').attr('files'),
    cache: false,
    contentType: 'multipart/form-data',
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});
Run Code Online (Sandbox Code Playgroud)

ajax jquery file-upload multipartform-data form-data

545
推荐指数
8
解决办法
83万
查看次数

如何在HTML中设置文件输入的值?

注意:

下面的答案和评论反映了2009年遗留浏览器的状态.现在,您可以在2017年使用JavaScript和dataTransfer或FileList对象实际动态/编程地设置文件输入元素的值.

有关详细信息和演示,请参阅此问题中的答案:
如何以编程方式设置文件输入值(即:拖放文件时)?

我该如何设置它的值?

<input type="file" />
Run Code Online (Sandbox Code Playgroud)

html javascript file-upload preset

307
推荐指数
8
解决办法
55万
查看次数

限制表单输入文本字段中允许的字符数

如何限制或限制用户只在文本框中输入最多五个字符?

以下是输入字段作为我的表单的一部分:

<input type="text" id="sessionNo" name="sessionNum" />
Run Code Online (Sandbox Code Playgroud)

它是使用像maxSize之类的东西吗?

html forms textbox input

109
推荐指数
6
解决办法
33万
查看次数

javascript如何上传blob?

我在这个结构中有一个blob数据:

Blob {type: "audio/wav", size: 655404, slice: function}
size: 655404
type: "audio/wav"
__proto__: Blob
Run Code Online (Sandbox Code Playgroud)

它实际上是使用最近的Chrome getUerMedia()Recorder.js记录的声音数据

如何使用jquery的post方法将此blob上传到服务器?我没试过就试过这个:

   $.post('http://localhost/upload.php', { fname: "test.wav", data: soundBlob }, 
    function(responseText) {
           console.log(responseText);
    });
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5

95
推荐指数
5
解决办法
13万
查看次数

从输入表单获取Base64编码文件数据

我有一个基本的HTML表单,我可以从中获取一些我在Firebug中检查的信息.

我唯一的问题是我试图在将文件数据发送到服务器之前对文件数据进行base64编码,然后需要将该文件数据保存到数据库中.

<input type="file" id="fileupload" />
Run Code Online (Sandbox Code Playgroud)

在Javascript + jQuery中:

var file = $('#fileupload').attr("files")[0];
Run Code Online (Sandbox Code Playgroud)

我有一些基于可用的javascript的操作:.getAsBinary(),. getAsText(),. getAsTextURL

但是这些都没有返回可插入的可用文本,因为它们包含不可用的"字符" - 我不希望在我上传的文件中出现"回发",我需要有多个表单来定位特定对象,所以这很重要获取文件并以这种方式使用Javascript.

我应该如何获得文件,以便我可以使用一个广泛可用的Javascript base64编码器!?

谢谢

更新 - 在这里开始赏金,需要跨浏览器支持!

这是我在的地方:

<input type="file" id="fileuploadform" />

<script type="text/javascript>
var uploadformid = 'fileuploadform';
var uploadform = document.getElementById(uploadformid);


/* method to fetch and encode specific file here based on different browsers */

</script>
Run Code Online (Sandbox Code Playgroud)

跨浏览器支持的几个问题:

var file = $j(fileUpload.toString()).attr('files')[0];
fileBody = file.getAsDataURL(); // only works in Firefox
Run Code Online (Sandbox Code Playgroud)

此外,IE不支持:

var file = $j(fileUpload.toString()).attr('files')[0];
Run Code Online (Sandbox Code Playgroud)

所以我必须替换为:

var element …
Run Code Online (Sandbox Code Playgroud)

html javascript base64 file-upload

94
推荐指数
5
解决办法
24万
查看次数

html中隐藏输入的长度是否有最大值?

换一种说法:

<input type="hidden" value="Can I put as much as I want in here, or is there a limit?" />
Run Code Online (Sandbox Code Playgroud)

如果是的话,它是什么?

html input

82
推荐指数
2
解决办法
6万
查看次数

来自DataURL的Blob?

使用FileReader's readAsDataURL()我可以将任意数据转换为数据URL.有没有办法Blob使用内置的浏览器apis 将数据URL转换回实例?

javascript fileapi

73
推荐指数
7
解决办法
7万
查看次数

动态设置文件输入的值

有没有办法设置文件input(<input type="file" />)的值,还是所有被阻止的安全性?我正在尝试使用谷歌齿轮的openFiles来制作一个简单的多重上传器.

注意:

下面的答案反映了2009年遗留浏览器的状态.现在,您可以在2017年使用JavaScript动态/编程地设置文件输入元素的值.

有关详细信息和演示,请参阅此问题中的答案:
如何以编程方式设置文件输入值(即:拖放文件时)?

html javascript dom google-gears

66
推荐指数
1
解决办法
9万
查看次数

在页面上删除文件时如何设置文件输入值?

我正在尝试创建一个控件,您可以在其中选择要在表单中提交的文件,并将文件放入其中以执行相同的操作.我有这样的东西,如果它是一个图像,它也会显示该文件的预览:

<div class="preview-image-container">

  <input type="file" name="File" id="File" accept="image/*" 
         class="image-url form-control" style="display:none;" />

  <div class="preview-image-dummy"></div><img class="preview-image-url" />
  <div class="preview-image-instruction">
    <div class="preview-image-btn-browse btn btn-primary">Select file</div>
    <p>or drop it here.</p>
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

这是MCVE的小提琴.

用户删除文件preview-image-container.该文件未随AJAX提交,用户需要提交包含更多数据的表单.

出于安全原因,我们不允许使用JavaScript更改输入文件的值.但是,我知道默认输入文件支持droppable,并且有一些网站让我们通过将它们放在表单中来选择文件,所以我的猜测是有一种方法可以做到这一点.

正如您从MCVE中看到的,我只对使用jQuery或纯JavaScript而不使用其他库感兴趣.

虽然可以使用dropzone.js,但它不符合我的要求,需要花费大量的时间来定制它的外观.此外,dropzone.js具有某些在我的ASP.NET应用程序中无法满足的配置要求.


有一个类似的问题,但没有一个正确的答案:
如何在HTML格式的表单中将文件对象设置为输入文件?

也不像上传拖放图像输入文件和预览,因为我已经实现了拖放和预览操作.我的问题是特定于在父容器中删除文件时输入空文件的问题.

javascript forms jquery events file

52
推荐指数
1
解决办法
4万
查看次数

如何在FileList对象中设置File对象和length属性,其中文件也反映在FormData对象中?

可以将元素的.files属性设置为例如来自不同的元素属性或属性.请参阅Make .files settable#2866,将文件上传到HTML表单并提交之间会发生什么?.<input type="file">FileList<input type="file">.filesDataTransfer.files

FileList对象有一个Symbol.iterator属性,我们可以使用它来设置一个File可迭代的对象,但是.files .length仍然设置为0并传递一个<form><input type="file">用于.files使用上述方法设置的集合,产生一个设置为的File对象..size0

如何设置Fileat FileList和set设置.lengthFileList文件数,文件在FormData()object 设置的位置?

const input = document.createElement("input");

const form = document.createElement("form");

const [...data] = [
  new File(["a"], "a.txt")
, new File(["b"], "b.txt")
];

input.type = "file";

input.name = "files";

input.multiple = true;
// …
Run Code Online (Sandbox Code Playgroud)

javascript form-data filelist fileapi

29
推荐指数
1
解决办法
9729
查看次数

在html的输入字段中可以有多少个字符?

html中输入字段中允许的字符的"自然"数是多少?

非常感谢

另外由于评论

我不需要通过post或get将它发送到服务器.我将通过JS解析字符串.

因此,如果输入是无限的,就像@sAc所说的那样,我又提出了两个问题:

  1. 什么是最长的String JS可以处理?
  2. 常见浏览器中输入允许的最低字符数是多少?(这将是我的限制)

html input

16
推荐指数
2
解决办法
2万
查看次数

如何使用jQuery或其他js框架上传字符串作为文件

使用javascript,我有一个字符串文件(带有ajax请求).

如何通过另一个ajax请求将其作为文件上传到服务器?

javascript ajax upload jquery extjs

12
推荐指数
2
解决办法
1万
查看次数

将文件转换为base64函数输出

Public Function ConvertFileToBase64(ByVal fileName As String) As String

    Dim ReturnValue As String = ""

    If My.Computer.FileSystem.FileExists(fileName) Then
        Using BinaryFile As FileStream = New FileStream(fileName, FileMode.Open)
            Dim BinRead As BinaryReader = New BinaryReader(BinaryFile)
            Dim BinBytes As Byte() = BinRead.ReadBytes(CInt(BinaryFile.Length))
            ReturnValue = Convert.ToBase64String(BinBytes)
            BinaryFile.Close()
        End Using
    End If
    Return ReturnValue
End Function
Run Code Online (Sandbox Code Playgroud)

我想问的问题:

  1. 我想要输出我要将文本文件"C:\ Users\user\Desktop\rats\test\test.txt"转换为base64
  2. 当我将"test.txt"转换为base64时,我无法获得任何输出
  3. 我使用filename ="textbox1.text"来添加我的"test.txt"

vb.net base64 file

5
推荐指数
1
解决办法
3万
查看次数