我正在使用Nodejs
框架和express
在ejs
中构建项目Multer
作为视图引擎,我被困在需要上传图片的位置,我正在使用70px * 40Px
,但问题是我想设置一个标准,如果图像没有上传到服务器的图像高度或宽度小于或大于预设大小,比如<broker xmlns="http://activemq.apache.org/schema/core" brokerName="Central-Dev-Broker" persistent="true" offlineDurableSubscriberTimeout="8" offlineDurableSubscriberTaskSchedule="3000" useJmx="true">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" >
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="1000"/>
</pendingMessageLimitStrategy>
</policyEntry>
<policyEntry queue=">">
<deadLetterStrategy>
<individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
</deadLetterStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<managementContext>
<managementContext createConnector="false"/>
</managementContext>
<persistenceAdapter>
<!--kahaDB directory="${activemq.data}/kahadb"/-->
<jdbcPersistenceAdapter dataSource="#mysql-ds"/>
</persistenceAdapter>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70" />
</memoryUsage>
<storeUsage>
<storeUsage limit="100 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
<plugins/>
<shutdownHooks>
<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
</shutdownHooks>
</broker>
<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db_activemq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
<import resource="jetty.xml"/>
</beans>
,早些时候我曾经与codeignitor无缝地做到这一点。
我可以搜索使用GM(Graphics Magick)的所有解决方案,但是在通过Multer上传图像后进入游戏。我不是在寻找代码帮助,而是关于npm中任何已知插件的任何建议,可以为我做这个。
注意:我不相信客户端验证,即使我使用的仍然保持服务器端验证工作,所以我也在寻找服务器端解决方案。
答案 0 :(得分:1)
在客户端,您可以将文件读入新的IMG元素。然后你可以检查宽度和宽度。图像元素的高度。
JSFiddle:https://jsfiddle.net/vz7yjbmf/
$('input').on('change',function(){
var input=this;
var reader = new FileReader();
reader.onload = function(e) {
var x=new Image()
x.onload=function(){
alert('width=' + x.width + ', height:' + x.height)
}
x.src= e.target.result;
}
reader.readAsDataURL(input.files[0]);
}
})