我正在使用照片上传脚本,可以在https://github.com/CreativeDream/php-uploader找到
这是HTML:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="newstatus" runat="server">
<textarea name="status" class="textarea newstatuscontent" placeholder="What are you thinking?"></textarea>
<div class="media"><input type="file" name="files[]" id="filer_input2" multiple="multiple"></div>
<input type="submit" name="post" value="Post" class="post-btn" id="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
这是将数据发送到的Jquery post-status.php:
//Get Image Value and Assign it to class mediafile
$('#filer_input2').change(function(){
var files = $(this)[0].files;
var output = "";
for(var i = 0; i < files.length; i++){
console.log(files[i].name);
output += files[i].name+";";
}
var media = $(".mediafile").val(output);
});
// STATUS UPDATE
$(function() {
$("#submit").click(function() { …Run Code Online (Sandbox Code Playgroud) 我正计划上传异步文件.那就是应该将文件上传到jsp或servlet并将内容返回到html/jsp页面而不重新加载原始页面.它应该像AJAX调用一样发生.有没有办法用AJAX或任何其他方式来做到这一点.
JavaScript中用于进行文件上传控制的任何替代方法?
实际问题是,我正在使用htmlwriter动态创建文件上传控件,当我使用时request.form[fileuplodctrl].tostring(),我只得到文件名而不是路径...
可以任何人建议我任何其他方式来获得完整的文件路径:)
我正在使用Bottle上传相当大的文件.这个想法是,当文件上传时,Web应用程序运行(并忘记)一个系统命令,其中上传的文件路径作为参数.除了以正确的文件路径作为参数启动系统命令之外,我不需要保存文件,但我需要确保该文件在该过程完成处理之前可用.
我使用这里描述的确切代码:http: //bottlepy.org/docs/dev/tutorial.html#post-form-data-and-file-uploads
我的问题是:
我想使用jQuery异步上传文件.这是我的HTML:
<input type="file" id="f" name="f"/>
<input id="upload" type="button" value="Upload"/>
Run Code Online (Sandbox Code Playgroud)
在这里我的JavaScript代码:
$(document).ready(function () {
$("#upload").click(function () {
var filename = $("#f").val();
$.ajax({
type: "POST",
url: "addFile.do",
enctype: 'multipart/form-data',
data: {
file: filename
},
success: function () {
alert("All Files Have Been Uploaded ");
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
我只获取文件名而不是我上传的实际文件
我正在使用此插件上传文件.
在 python 中,我发送这样的文件:
with open('D:\\someimage.jpg', 'rb') as image:
imager = image.read()
files = {'image': imager}
r = requests.post(url, files=files)
Run Code Online (Sandbox Code Playgroud)
我想在 js 中做类似的事情,但我总是收到 400 Bad Request 错误。我认为问题是我不知道文件应该具有什么类型。我尝试过以初始“文件”类型传递它,作为数组缓冲区,作为二进制字符串 - 没有任何效果。这是我的代码:
var reader = new FileReader();
reader.readAsArrayBuffer(aFiles[0]);
reader.onload = function () {
var arrayBuffer = this.result,
array = new Uint8Array(arrayBuffer),
binaryString = String.fromCharCode.apply(null, array);
jQuery.ajax({
url: '/streamer',
method: 'POST',
files: {'image': binaryString},
success: function(response) {
alert(response);
},
error: function(xhr, status, error) {
alert(JSON.parse(xhr.responseText));
}});
Run Code Online (Sandbox Code Playgroud) 简而言之,我想将图像的二进制数据发送到我的处理程序,该处理程序将作为字节数组保存在DB中.使用readAsBinaryString(f)我的Javascript 读取文件输入的值,我会得到如下输出:
GIF89a,úæÿÿÿ2c½3fÌ Smaäµééúþc«T.[ÈéùAtεÚõ[ãX߯î*[µc³8Ûõüÿfj¥æ§ÈïÛå÷ËØñI}ÓQ×
*\»q£E}Ûÿå§ÓõþÿIÛv¤Þ´Åè«æ ³][us¬çAy×MÞ,a½«ÔóZÝL2äëùQ×(Eq<pË5V¨·ÏIÓ¨»åQßY¥3bØÈ
æ¬z³é<uÓ3£ÎñE¾á÷RÛR¢K®ÎØØìÍAtÓÑÔØrÀ-hݪÑïôõüR|ÎäóÖUËåæçXÔw»^s®ëI}ÛQ}ÔEÛ·Îñ½Óêd»Ì
ÌëöåóôöÖàñE×Cr¿C¤3óúëLÍYÜ3fõûöÑðû Øûÿõw²ñ`ª»ßÀy|Á¿ÃIuÔM×ûñû{¹R4¼ìe¡äl«ç!ÿNETSCA
PE2.0!ÿXMP DataXMP<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpm
eta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02
/06-14:56:27 // etc..
Run Code Online (Sandbox Code Playgroud)
该数据通过AJAX发送:
$.ajax({
url: theUrl,
type: 'POST',
data: { Image: image } // image = data above
});
Run Code Online (Sandbox Code Playgroud)
这是二进制字符串?当我将此字符串发送到我的处理程序(IHttpHandler)时,为了将其存储到字节数组中,如果我将编码设置为ISO-8859-1,我可能只获取字节.
public void ProcessRequest (HttpContext aContext)
{
// This works as long as requestValidationMode = "2.0" in web.config
// Is there a way to bypass HttpRequestValidationException just on
// THIS data?
byte[] imageBytes = System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(_Context.Request["Image"]);
//... …Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery脚本将文件上传到新页面.它在某种程度上也有效,但问题在于它将表单数据发送为object FormData.
这是代码:
$('#submit').click(function () {
var formData = new FormData($(this).form);
$.ajax({
url: '/test/file_capture',
//Ajax events
beforeSend: function (e) {
alert('Are you sure you want to upload document.');
},
success: function (e) {
alert('Upload completed');
},
error: function (e) {
alert('error ' + e.message);
},
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
HTML部分如下:
<form enctype="multipart/form-data">
<input type="file" id="image" …Run Code Online (Sandbox Code Playgroud) 我有一个小的表格,我想将文件上传到CF服务器。过去,我可以通过传统的操作页面提交CFFORM来完成此工作。但是我想使用AJAX上传文件。
我在处理页面上收到如下错误:cffile action =“ upload”要求表单使用enctype =“ multipart / form-data”,即使我已经这样定义了表单。
从google'ng到周围,我认为可能是因为Cffile要求filefield属性,但是由于没有表单对象传递给coldfusion。可能类似的问题。我不太喜欢这个解决方案。
无论如何,我可以解决这个错误吗?
这是我的AJAX:
<!---Script to upload file link --->
<cfoutput>
<script>
$(function(){
//Add a new note to a link
$("##upload-file").submit(function(event){
// prevent native form submission here
event.preventDefault();
$.ajax({
type: "POST",
data: $('##upload-file').serialize(),
url: "actionpages/file_upload_action.cfm",
beforeSend: function(){
$('.loader').show();
},
complete: function(){
$('.loader').hide(3000);
},
success: function() {
PopulateFileUploadDiv();
$("##upload").val('');
$("##response").append( "File successfully Uploaded." );
}
});
return false;
});
});
</script>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
我的表格:
<form method="post" name="upload-file" id="upload-file" enctype="multipart/form-data">
<input tabindex="0" size="50" …Run Code Online (Sandbox Code Playgroud) javascript ×6
ajax ×5
jquery ×5
file-upload ×2
forms ×2
asp.net ×1
asynchronous ×1
bottle ×1
c# ×1
cffile ×1
coldfusion ×1
html ×1
jsp ×1
php ×1
python ×1
upload ×1