- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这个代码
<?php
// Upload pictures
$folder = '../images/tmp';
foreach ($_FILES['files']['name'] as $i => $name){
if (strlen($_FILES['files']['name'][$i]) > 1 && (false !== strpos($_FILES['files']['type'][$i],'image'))){
if (!move_uploaded_file($_FILES['files']['tmp_name'][$i], $folder.'/'.$name)){
// Redirect to the Upload form
header('Location: osi_upload.php');
exit();
}
}
}
?>
在本地主机上上传图像。之后,我使用这段代码:
<?php
$i = -1;
foreach(glob($folder.'/*') as $filename){
$file[++$i] = $filename;
} ?>
<form action="draft.php" enctype="multipart/form-data" id="img-frm" method="post"><?php
// Medium and large devices
switch($gallery){
case 1:
{ ?>
<!--Canvas 1-->
<div class="col-xs-12 no-pad-left-right hide-sm"><?php
for($n=0;$n<=$i;$n++){ ?>
<div class="in-block">
<label for=<?php echo "img-input[".$n."]"; ?>>
<img id=<?php echo "img-pict[".$n."]"; ?> src=<?php echo "".$file[$n].""; ?> class="canvas-1">
<div class="alert-success pad-top-bottom text-center" id=<?php echo "img-name[".$n."]" ?>><strong><?php echo basename($file[$n]); ?></strong></div>
</label>
<input type="file" id=<?php echo "img-input[".$n."]"; ?>>
</div>
<?php
} ?>
</div><?php
break;
}
...
预览我上传的图片。如果需要,我可以单击其中一张图片打开上传文件对话框来更改相应的图片。要更改图像,我使用以下 javascript 代码:
$(document).ready(function(){
// Change clicked pictures
if(!$('#img-frm input[type="file"]')){
return;
}
$('#img-frm input[type="file"]').change(function(){
// Get the input number
var str = this.id.split("[");
var i = str[1].substr(0,str[1].length-1);
var s = 'img-pict[' + i + ']';
// Get the new picture address
var new_img = window.URL.createObjectURL(this.files[0]);
// Preview the new picture
document.getElementById(s).src = new_img;
str = $(this).val().split("\\");
var n = str.length;
s = 'img-name[' + i + ']';
document.getElementById(s).innerHTML = str[n-1];
});
});
所有这些代码都可以正常工作。我的问题是在我单击图像预览进行更改后上传替换图像。我不知道如何在我更喜欢的 PHP 中更改服务器上的图像。修改后我尝试提交表单,但是在接收文件中,我什么也没有!空白的!有人可以帮忙吗。
也许了解表单的其余部分由文本输入、区域、选择和日期输入组成很重要。当我对这些进行更改时,我会在我的接收文件中收到有关其他表单元素的帖子。对预览图像所做的更改不会发布。
好的!我想我正处于通过这种困惑的方式的开始!!!假设 javascript 难以处理来自发布表单的 $_FILES 数组,我在 HTML 文件中添加了一个隐藏的输入:
<label for=<?php echo "img-input[".$n."]"; ?>>
<img id=<?php echo "img-pict[".$n."]"; ?> src=<?php echo "".$file[$n].""; ?> class="canvas-1">
<div class="alert-success pad-top-bottom text-center" id=<?php echo "img-name[".$n."]" ?>><strong><?php echo basename($file[$n]); ?></strong></div>
</label>
<input type="file" id=<?php echo "img-input[".$n."]"; ?> name=<?php echo "img-input[".$n."]"; ?>>
<input type="hidden" value=<?php echo "".$file[$n].""; ?> name=<?php echo "img-hidden[".$n."]"; ?> id=<?php echo "img-hidden[".$n."]"; ?>>
用于在发布后检索文件 url。我更改了我的 javascript 文件以处理隐藏的输入:
$('#img-frm input[type="file"]').change(function(){
// Get the input number
var str = this.id.split("[");
var i = str[1].substr(0,str[1].length-1);
var s = 'img-pict[' + i + ']';
// Get the new picture address
var new_img = window.URL.createObjectURL(this.files[0]);
// Preview the new picture
document.getElementById(s).src = new_img;
s = 'img-hidden[' + i + ']';
document.getElementById(s).value = new_img;
str = $(this).val().split("\\");
var n = str.length;
s = 'img-name[' + i + ']';
document.getElementById(s).innerHTML = str[n-1];
});
我有这个:
Array ( [img-hidden] => Array ( [0] => blob:http://localhost/f8e7a5af-76fa-4da1-b489-387b55395873 [1] => ../images/tmp/templatemo_portfolio02.jpg [2] => ../images/tmp/templatemo_portfolio03.jpg [3] => ../images/tmp/templatemo_portfolio04.jpg [4] => ../images/tmp/templatemo_portfolio05.jpg [5] => ../images/tmp/templatemo_portfolio06.jpg [6] => ../images/tmp/templatemo_portfolio07.jpg [7] => ../images/tmp/templatemo_portfolio08.jpg )
请注意,数组 [img-hidden] 中的第一个索引是一个 blob,它是新图像的 url(请记住,在我点击图像后改变它)。是否可以使用该网址上传该图片?如何? (请注意,所有图像都需要上传到最终目的地,但我处理其他文件没有问题。只是我不知道 blob)
最佳答案
我很困惑:D经过大量搜索,我取消了我所做的一切并重新尝试了原始代码并且它正在运行。我想我在接收文件中有错别字或类似的东西。我想 print_r($_FILE);
而不是 print_r($_FILES);
我不知道。
事实上,真正的挑战是在预览图像进行修改(最终)后将图像上传到服务器。一次上传几张图片,并根据图片的数量和大小在特定的 Canvas 上显示。
与其使用非常复杂的(至少对我而言!)AJAX API 与服务器通信,我更愿意寻找一种解决方案,让每种语言都能按预期发挥自己的作用。
因此,我使用 HTML 实现了这样一个事实,即我可以单击一张图片并打开上传对话框以选择另一张图片来替换之前的图片。
<label for=<?php echo "img-input[".$n."]"; ?>>
<img id=<?php echo "img-pict[".$n."]"; ?> src=<?php echo "".$file[$n].""; ?> class="canvas-1">
</label>
<input type="file" id=<?php echo "img-input[".$n."]"; ?> name=<?php echo "img-input[".$n."]"; ?>>
label
带有 for=
属性的输入是键。
为了在不重新加载文件的情况下进行替换,当然我使用了 javascript 和一些 JQuery(不是必需的但很有趣)
$(document).ready(function(){
// Change clicked pictures
if(!$('#img-frm input[type="file"]')){
return;
}
$('#img-frm input[type="file"]').change(function(){
// Get the input number
var str = this.id.split("[");
var i = str[1].substr(0,str[1].length-1);
var s = 'img-pict[' + i + ']';
// Get the new picture address
var new_img = window.URL.createObjectURL(this.files[0]);
// Preview the new picture
document.getElementById(s).src = new_img;
str = $(this).val().split("\\");
var n = str.length;
s = 'img-name[' + i + ']';
document.getElementById(s).innerHTML = str[n-1];
});
});
在 var new_img = window.URL.createObjectURL(this.files[0]);
行中,生成您选择替换预览的图像的 URL,并在 行中>document.getElementById(s).src = new_img;
,图片加载到你之前点击预览的地方。路径由表单发送,并创建一个 $_FILES
数组。您现在可以使用 PHP 上传。
尽管我的错别字很荒谬,但我希望这会有所帮助。我在网上看到了很多关于类似问题的奇怪答案。
关于javascript - PHP,点击图片上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35404440/
我想使用 Angular.js 转换从服务器获取的图像数据(用于 ionic 框架),我使用了这段代码: $http.post(link, { token: token,
我正在为我的应用制作一个登陆页面。如果它们在 iOS 设备上,我希望它只显示“App Store”图标,但在 Android 上隐藏它。如果它们在 Android 设备上,则只有“Play Store
如何在同一页面上多次显示同一张图片? function xdf(){ for (i=0;ihello world'); } } 此代码显示“hello world”10 次。我想要同样的东西,
您好,我有一个 1px 的 png 文件,我试图将其设置为两个水平相邻的 div 的背景图像。html 和 css 如下:- hi hello css是这样的 div { width: 50%
我的 PHP 项目安装了 Prestashop 1.4.9.0。当我添加一个新产品时,我上传了一个PNG格式的图片,但是当它在客户端显示时,图片是JPG格式的。 如何保留图片扩展名? 最佳答案 在后台
我用 http://www.regexper.com查看一个象形表示正则表达式很多。我想要一种理想的方法: 向站点发送正则表达式 打开显示该表达式的站点 例如,让我们使用正则表达式:"\\s*foo[
我不知道为什么在 MAC OS X (Mail 6.2) 的邮件客户端中图像显示如下: 和其他邮件客户端,如 gmail、outlook 或 private,图像是正确的,看起来像这样: PHP邮件程
我正在使用此处找到的示例。 Mozilla developers 我对这个例子很感兴趣。 function upload(postUrl, fieldName, filePath) { var f
我不知道为什么在 MAC OS X (Mail 6.2) 的邮件客户端中图像显示如下: 和其他邮件客户端,如 gmail、outlook 或 private,图像是正确的,看起来像这样: PHP邮件程
我的问题是如何根据用户在javafx中选择的复选框和/或单选按钮生成带有汽车图片设置的按钮? 我正在用汽车图片模拟汽车经销商网站。用户应该能够通过单击复选框和/或单选按钮选择来过滤显示的图片。 我首先
我正在开发Java客户端,它应该支持多种语言。为了翻译文本,我使用 Java ResourceBoundle,它工作正常。 现在问题出在图像上。客户端应加载大约 50 张图像,这些图像是棋盘游戏的特定
我对 jQuery 还很陌生,但我正在寻找一个简单的脚本,通过淡入和淡出的方式在标题中循环 3 或 4 个背景图像。它们是透明的 png,因此我尝试过的许多 slider 都不起作用。 有什么想法吗?
我有一个 HTML 文档,其中包含本地文件的图像,例如: ios - 物理主体大于它分配给的纹理(图片)
我的 Sprite “physicsBody ”属性之一出现问题。 我已经放置了physicsBody节点“barn ”,直接位于 non-physicsBody 之上节点“mound”没有任何问题。
我想剪切图片的特定部分并用它来将剪切的图像与存储在 HDD 中的另一个图像进行比较。问题是我不知道如何获取源图像的特定部分。我知道要裁剪的图像的位置 (X,Y)。 最佳答案 这将加载原始版本并创建
如何使用裁剪实用程序在 javascript 中实现图像 uploader 。你如何通过 AJAX 提交图像文件?解决方案是否跨域兼容? 最佳答案 要实现具有裁剪功能的图片上传小部件,您必须: 将图像
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityRes
我想在我的 android 应用程序中显示一个国家的图片。国家必须按地区划分。因此,当用户单击特定区域时,应打开特定屏幕。区域也应该用线分隔,以便用户可以看到区域的开始/结束位置。 这是一个国家的例子
首先我想对这个问题表示歉意,因为我知道已经有很多人问过这个问题了。但我搜索的所有答案都没有解决我的问题。所以希望您考虑这个问题并帮助我解决这个问题。 所以基本上我正在尝试上传图像文件,当我提交它时,会
我几乎有了想要的数据...但需要帮助过滤它。 (图在底部) 下面的查询返回状态为 Member-id5 的所有记录,但我需要对其进行过滤。例如:如果我对等做了一个简单的查询。 (exp_channel
我是一名优秀的程序员,十分优秀!