如何通过javascript发布图像数据
how to post image data through javascript
我有一个html表单发送POST数据到我的PHP脚本
它还使用AJAX在完成表单时提供预览
但是表单使用onsubmit="
问题是我有一个html输入是一个图像。
下面的表格给你一个概念:
<form method="post" action="scripts/test.php" enctype="multipart/form-data">
<input type="hidden" name="size" id="size" value="small" />
<input type="hidden" name="type" id="type" value="1" />
<input type="hidden" name="pos" id="pos" value="front" />
<input type="hidden" name="number" id="number" value="none" />
<input type="hidden" name="name" id="name" value="none" />
<label>Choose Your First Shirt Colour</label><br /> <input class="color" value="ff3300" id="colour1" name="colour1" onchange="change()">
<br /><br />
<label>Choose Your Second Shirt Colour</label><br />
<input class="color" value="FFFFFF" id="colour2" name="colour2" onchange="change()">
<br /><br /><label>Add Your Logo: <br />
<span style="font-size:11px;color:#FF0000;">(if you are having trouble adding your logo please contact us on 0845 6018370)</span></label>
<br />
<input type="file" name="logo" id="logo" onchange="change()"/><br /><br />
<label>Add Your Text:</label><br />
<textarea name="text" cols="30" id="text" rows="5" onchange="change()"></textarea><br />
<label><span style="color:#000000;">Quantity: </span></label>
<input type="text" id="quantity" name="quantity" value="1" style="width:40px;height:20px;"/><br /><br />
<input type="button" name="preview" value="Preview" onclick="MyPreview()"/><br />
<input type="submit" name="submit" value="Submit" />
</form>
我使用
var logo =document.getElementById("logo").value;
的图像,但当我发送的标志值通过PHP它打破了图像,因为它不是正确的post值需要通过发送到PHP脚本,好像你正在提交的形式。
有没有人知道如何通过使用onchange和javascript简单地获得相同的标签html字段的post值?
如果我理解正确的话,您只是想在文件输入的值发生变化时显示图像的预览,对吗?
如果是这样,我猜你想要做的只是从用户的本地驱动器加载图像的预览,而不是真正上传到你的服务器。实际的文件上传可以在用户已经提交表单时完成。
要完成上述过程(加载图像文件的预览),HTML5的FileReader API
.
使用FileReader API
实际上很简单,可以这样做:
var logo = document.getElementById("logo").files[0]; // will return a File object containing information about the selected file
// File validations here (you may want to make sure that the file is an image)
var reader = new FileReader();
reader.onload = function(data) {
// what you want to do once the File has been loaded
// you can use data.target.result here as an src for an img tag in order to display the uplaoded image
someImageElement.src = data.target.result; // assume you have an image element somewhere, or you may add it dynamically
}
reader.readAsDataURL(logo);
你可以把这个代码在你的onchange
事件处理程序,我想你不会需要AJAX在这里。
当表单被提交时,图像数据可以在$_FILES
数组中通常的位置获得。
如果你不能使用html5的功能,我认为你必须把文件上传到你的服务器上预览
(f)打开你的$_FILES['userfile']['tmp_name']
并将原始内容发送回来,参见:我如何使用$。Ajax设置图像SRC为动态图像/png数据?您可以在发送数据之前调整图像的大小,然后删除图像。
相关文章:
- 加载/调整大小时未切换图像数据标记
- 存储和检索图像数据URL
- 将图像数据设置为输入文件标记
- 是否可以创建一个画布来提取图像数据,而无需实际渲染画布
- 是从画布获取图像数据的任何方法,从远程视频中提取
- jQuery:裁剪以删除图像数据并替换为新数据
- 将图像数据加载到Angularjs中
- 使用从readAsDataURL()返回的图像数据
- EXIF图像数据可以使用JSSOR在页面上显示吗
- 获取当前图像数据Flexslider
- 将base64图像数据作为src分配给图像时,Firefox和Chrome上的结果不一致
- 原始图像数据显示
- 在画布上拖动和绘制时传输图像数据
- Selenium网络驱动程序:如何使用JavaScripts获取嵌入式图像数据
- 通过REST API上的GET请求发送图像数据
- 是否可以使用图像数据设置画架命中区域
- 获取图像数据跨源错误
- 如何使用Javascript从网页中获取图像数据
- 严格模式下的图像数据数据分配
- HTMLUnit是否包括一个功能性的[HTML5]画布2D实现,能够将图像数据渲染回Java代码