Python 请求模块提供了有关如何在单个请求中上传单个文件的良好文档:
files = {'file': open('report.xls', 'rb')}
Run Code Online (Sandbox Code Playgroud)
我试图通过使用此代码来尝试上传多个文件来扩展该示例:
files = {'file': [open('report.xls', 'rb'), open('report2.xls, 'rb')]}
Run Code Online (Sandbox Code Playgroud)
但它导致了这个错误:
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1052, in splittype
match = _typeprog.match(url)
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)
是否可以使用此模块在单个请求中上载文件列表,以及如何?
我一直试图让这项工作相当长一段时间.但我似乎无法使其发挥作用.我想要一个只有一个输入的多图像上传表格.
这是我的upload.php
<?php
include("../include/session.php");
session_start();
$allowedExts = array("jpeg", "jpg", "png", "gif");
$extension = end(explode(".", $_FILES["upload"]["name"]));
if(isset($_FILES['upload']['tmp_name']))
{
for($i=0; $i < count($_FILES['upload']['tmp_name']);$i++)
{
if (($_FILES["upload"]["name"] < 90000000000000000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["upload"]["error"] > 0)
{
header('location: '.$error); die;
}
else
{
if (file_exists("../icons/".$_SESSION["username"] ."/" . $_FILES["upload"]["name"]))
{
echo "error";
}
else
{
if(!is_dir("../icons/". $_SESSION["username"] ."/")) {
mkdir("../icons/". $_SESSION["username"] ."/");
}
$temp = explode(".",$_FILES["upload"]["name"]);
$file = rand(1,999999999999) . '.' .end($temp);
move_uploaded_file($_FILES["upload"]["tmp_name"], "../icons/". $_SESSION["username"] ."/". $file);
}
}
}
} else { …Run Code Online (Sandbox Code Playgroud) 我最近添加jQuery File Upload到我的rails应用程序类似于以下链接中显示的内容:https://github.com/blueimp/jQuery-File-Upload/wiki/Rails-setup-for-V6.
我看到的每个rails实现版本都有<script id="template-download" type="text/x-tmpl">-part.这些脚本标记内部是用于列出现有数据的模板.
https://github.com/yortz/carrierwave_jquery_file_upload/blob/master/app/views/pictures/_template-download.html.erb上还有一个<script id="template-download" type="text/x-jquery-tmpl">版本非常类似于.x-tmpl
我的问题是:
有什么好处x-tmpl?
在github.com/blueimp/jQuery-File-Upload/wiki/Template-Engine写道:
"但是,你不需要使用这个特定的模板引擎,可以用不同的实现来替换它,通过设置uploadTemplateId,downloadTemplateId,uploadTemplate和downloadTemplate选项"对我而言,听起来它可能使用普通
_partial_xy.html.erb而不是x-tmpl.
我错了吗?
如果是的话,至少可以在模板中使用rails helper,如number_to_currency,还是我必须像jquery.fileupload-ui.js中的formatFileSize那样实现它?
jquery jquery-templates ruby-on-rails-3.2 blueimp multiple-file-upload
我想创建一个Web应用程序,用户可以从手机的图像库中选择和上传多个图像.这个功能在iOS上工作正常,但它似乎在Android上被打破了:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="files[]" multiple="multiple" accept="image/*"/>
<input type="submit" value="Upload!" />
</form>
Run Code Online (Sandbox Code Playgroud)
我已经阅读了几篇帖子,其中有人声称要在Chrome网络浏览器中修复,但我仍然无法让它工作.
谢谢!
html5 android google-chrome web-applications multiple-file-upload
我正在上传多个文件.主要功能工作正常,但我必须要改变上传文件的名字,如:
name1.jpg,name2.jps,name3.jpg,...
$i = 1;
if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/name'.$i++.'.'.$extension)){
echo '{"status":"success"}';
exit;
}
Run Code Online (Sandbox Code Playgroud)
数字$i应随着上传文件的数量而增长.我希望它能正确解释.
我是新手reactjs,我正在尝试上传多个文件上传。我可以将文件作为 array 存储在 state 组件中。但是当我将数据传递给 axios post 方法时,它给我的文件列表为[object FileList]. 而且我无法遍历这些文件来存储 . 甚至我尝试了多种方法来上传多个文件,例如“react-Dropzone”。但没有帮助。
我的反应代码。
handleChange(event) {
this.setState({ file: event.target.files })
}
async handleSubmit(e) {
e.preventDefault()
let res = await this.uploadFile(this.state.file);
}
async uploadFile(File){
const formData = new FormData();
formData.append('image', File)
axios.post(UPLOAD_ENDPOINT, formData, {
headers: {
'content-type': 'multipart/form-data'
}
}).then(response => {
console.log(response.data)
});
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<input type="file" id="file" multiple name="file" onChange={this.handleChange} />
<button type="submit" className="btn btn-info"> Update File </button>
</form>
)
}
Run Code Online (Sandbox Code Playgroud) 如何使用 Flask test_client 将多个文件上传到一个 API 端点?
我正在尝试使用 Flask test_client 将多个文件上传到一个 Web 服务,该服务接受多个文件并将它们组合成一个大文件。
我的控制器看起来像这样:
@app.route("/combine/file", methods=["POST"])
@flask_login.login_required
def combine_files():
user = flask_login.current_user
combined_file_name = request.form.get("file_name")
# Store file locally
file_infos = []
for file_data in request.files.getlist('file[]'):
# Get the content of the file
file_temp_path="/tmp/{}-request.csv".format(file_id)
file_data.save(file_temp_path)
# Create a namedtuple with information about the file
FileInfo = namedtuple("FileInfo", ["id", "name", "path"])
file_infos.append(
FileInfo(
id=file_id,
name=file_data.filename,
path=file_temp_path
)
)
...
Run Code Online (Sandbox Code Playgroud)
我的测试代码如下所示:
def test_combine_file(get_project_files):
project = get_project_files["project"]
r = web_client.post(
"/combine/file",
content_type='multipart/form-data',
buffered=True,
follow_redirects=True, …Run Code Online (Sandbox Code Playgroud) python flask python-unittest multiple-file-upload web-api-testing
我正在使用bootstrap多文件上传插件上传文件.我正在使用此链接上的示例.现在我想在"添加文件"按钮之外添加另一个按钮"取消上传".点击"取消上传"按钮后,应停止上传过程.请帮我解决这个问题.谢谢
jquery file-upload twitter-bootstrap bootstrap-file-upload multiple-file-upload
在我的 HTTP 服务器上,我试图允许用户通过这种形式上传图片:
<form action="/?command=saveImage" method="post" enctype="multipart/form-data">
<input type="file" name="images" multiple="multiple"/>
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我正在使用此源上传图像:http : //embarcadero.newsgroups.archived.at/public.delphi.internet.winsock/201107/1107276163.html并更改了 ProcessMimePart 程序以便以正确的格式保存图像:
procedure ProcessMimePart(var aDecoder: TIdMessageDecoder;
var aMsgEnd: Boolean);
var
LMStream: TMemoryStream;
LNewDecoder: TIdMessageDecoder;
fileName, fileExtension: string;
begin
fileName := aDecoder.fileName;
fileExtension := GetFileExtension(fileName);
if (fileExtension <> 'jpg') and (fileExtension <> 'png')
and (fileExtension <> 'bmp') then
begin
Exit;
end;
LMStream := TMemoryStream.Create;
try
LNewDecoder := aDecoder.ReadBody(LMStream, aMsgEnd);
try
LMStream.Position := 0;
TSaveImageController.WriteImage(fileName, fileExtension, LMStream);
except
LNewDecoder.Free;
raise;
end;
aDecoder.Free;
aDecoder …Run Code Online (Sandbox Code Playgroud) 我有多个文件输入。我希望我的客户在单击“选择文件”时选择多个文件(我认为已完成),如果他们忘记选择一些文件,我希望我的代码启用选择新文件(完成)并将该数据添加到他们之前选择的数据(无法解决)。
如何将新文件添加到列表?
只是为了给您提供背景信息:之后的目标是将每个带有AJAX的文件发送到我的PHP服务器。
$("#upload-form").submit(function(e) {
$('#displayFileNames').html('');
console.log('Currently in files.');
var files = $('#myFileInput')[0].files;
for (var i = 0; i < files.length; i++){
$('#displayFileNames').append(files[i].name + '</br>');
console.log(files[i].name);
}
// Send data with AJAX.
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='upload-form' action='' method='post' enctype='multipart/form-data'>
<input id='myFileInput' class='file-input' type='file' name='file[]' multiple='multiple' />
<input type='submit' value="See what's in there" />
</form>
<div id="displayFileNames"></div>Run Code Online (Sandbox Code Playgroud)
任何帮助,提示表示赞赏!
file-upload ×3
jquery ×3
php ×3
android ×1
blueimp ×1
delphi ×1
file-rename ×1
flask ×1
html ×1
html5 ×1
httpserver ×1
image ×1
indy ×1
javascript ×1
python ×1
react-native ×1
react-router ×1
reactjs ×1